在一个相对布局中设置着底部组合控件,比如:正常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>
这样就解决了问题