Android中的布局和控件的隐藏和触发显示

1、布局的隐藏和显示

安卓开发中会遇到很多显示和隐藏的问题,有时候需要隐藏一部分布局,包括所有的布局格式(线性布局、相对布局、网格布局等),这里以LinearLayout的隐藏与显示为例进行展示说明。
首先在layout中的xml页面进行页面的设计:

        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="144"
                android:id="@+id/linearLayout_id">
        LinearLayout>

然后相对应的java文件中操作这个LinearLayout的id即可。对应的java代码,这里实现的功能是:默认状态下目标布局不显示,不显示的部分由其他部分代替。通过点击某一个按钮布局就会显示出来。

private boolean isVisible = true;
private LinearLayout layout_1;
@Override
    protected void onCreate(Bundle savedInstanceState) {

         layout_1 = (LinearLayout) findViewById(R.id.linearLayout_id);
         layout_1.setVisibility(View.GONE);//这一句即隐藏布局LinearLayout区域

         //点击触发的图标
         ImageView more = (ImageView) findViewById(R.id.more);
         more.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isVisible) {
                    isVisible = false;
                    layout_1.setVisibility(View.VISIBLE);//这一句显示布局LinearLayout区域
                } else {
                    layout_1.setVisibility(View.GONE);//这一句即隐藏布局LinearLayout区域
                    isVisible = true;
                }
            }
        });

}

2、控件按钮的隐藏和显示

和布局显示的隐藏类似,首先是xml中的代码:

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1">
                    <ImageView
                        android:id="@+id/monitor_area1"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:src="@drawable/monitorarea"
                         />
                LinearLayout>

对应的java代码

private boolean isVisible = true;
 private ImageView monitor_area1;
@Override
    protected void onCreate(Bundle savedInstanceState) {

        //目标隐藏和显示的图标
        monitor_area1 = (ImageView) findViewById(R.id.monitor_area1);
        monitor_area1.setVisibility(View.INVISIBLE);

         //点击触发的图标
         ImageView more = (ImageView) findViewById(R.id.more);
         more.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isVisible) {
                    isVisible = false;
                    monitor_area1.setVisibility(View.VISIBLE);
                } else {
                    monitor_area1.setVisibility(View.INVISIBLE);
                    isVisible = true;
                }
            }
        });

}

你可能感兴趣的:(编程语言)