1. 程式人生 > >Android 關於佈局中Button控制元件正常順序出現的遮蓋其他控制元件問題

Android 關於佈局中Button控制元件正常順序出現的遮蓋其他控制元件問題

在一個相對佈局中設定著底部組合控制元件,比如:正常app的四個底部導航欄,分別用權重去等比例顯示,但是若在其中的一份比例中的相對佈局裡放置了Button和其他的自定義控制元件(包含非自定義控制元件),那麼就會出現Button覆蓋佈局中的其他控制元件的問題,不過遇到的也許不多吧,下面來說一說我遇到的情況:

1.Button覆蓋其他控制元件示例:

 <!--好友-->
        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1">

            <Button
                android:id="@+id/main_btn2"
                style="@style/tab_button"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:drawableTop="@drawable/tab_chat_bg"
                android:onClick="onTabClicked"
                android:textAllCaps="false"
                android:textColor="@drawable/index_text"
                android:text="@string/friends" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginRight="10dp"
                android:layout_marginTop="1dp"
                android:background="@drawable/unread_dot"
                android:gravity="center"
                android:text="7"
                android:textColor="@android:color/white"
                android:visibility="invisible" />

        </RelativeLayout>

當然,我用自帶的模擬器是沒有覆蓋問題的,但是,一款紅米Note4就出現了覆蓋的問題,導致融雲接收未讀訊息顯示不出來,很是鬱悶,浪費了我半個小時的時間找原因,最後才想到是不是控制元件的覆蓋原因導致的,結果真是。

2.下面是修改後的佈局,就是把Button包裹起來,不讓她和其他的控制元件直接接觸,這也是安卓系統的一個小Bug吧。

  <!--訊息-->
        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1">

            <LinearLayout
                android:layout_width="match_parent"
                android:orientation="vertical"
                android:layout_height="match_parent">
                <Button
                    android:id="@+id/main_btn_news"
                    style="@style/tab_button"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:drawableTop="@drawable/tab_chat_bg"
                    android:onClick="onTabClicked"
                    android:textAllCaps="false"
                    android:textColor="@drawable/index_text"
                    android:text="@string/news" />
            </LinearLayout>

            <!--<com.iruiyou.pet.utils.DragPointView-->
                <!--android:id="@+id/seal_num"-->
                <!--android:layout_width="19dp"-->
                <!--android:layout_height="19dp"-->
                <!--android:layout_alignParentRight="true"-->
                <!--android:layout_marginRight="18dp"-->
                <!--android:layout_marginTop="1dp"-->
                <!--android:textColor="@android:color/white"-->
                <!--android:textSize="12sp"-->
                <!--android:gravity="center"-->
                <!--android:visibility="invisible" />-->
            <RelativeLayout
                android:id="@+id/rl_main_im_red"
                android:gravity="center"
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:layout_alignParentRight="true"
                android:layout_marginRight="18dp"
                android:layout_marginTop="1dp"
                android:layout_marginLeft="38dp"
                android:background="@drawable/bg_red_dot_corner">

                <TextView
                    android:id="@+id/tv_main_im_red"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="@color/black"
                    android:textSize="8sp" />

            </RelativeLayout>

這樣就解決了問題