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;
                }
            }
        });

}
發佈了161 篇原創文章 · 獲贊 91 · 訪問量 54萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章