美文网首页
关于clipChildren属性无效的原因

关于clipChildren属性无效的原因

作者: 执念蓝枫 | 来源:发表于2019-03-28 11:13 被阅读0次

    clipChildren的意思是 是否限制子View在其范围内,默认为true。

    常规原因

    • clipChildren属性需要设置在祖父组件中,即父组件的父组件。
    • 需要解除绘制限制的View需要通过android:layout_gravity="" 来设置超出部分如何显示。常用设置Bottom。

    自身项目中设置该属性无效的原因

    • 在ViewGroup里设置了padding属性
    解决办法:
    • 删除不必要的padding属性
    • 如果padding属性为必须,则需要在设置了padding属性的viewgroup里设置属性 android:clipToPadding="false"
      原代码:
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipChildren="false">
    
            <RadioGroup
                android:id="@+id/menu_group"
                android:layout_width="match_parent"
                android:layout_height="55dp"
                android:layout_alignParentBottom="true"
                android:background="@color/fontWhite"
                android:gravity="bottom"
                android:orientation="horizontal"
                android:paddingTop="4dp"
                android:paddingBottom="4dp"
                android:visibility="visible">
    
                <RadioButton
                    android:id="@+id/radio_0"
                    android:layout_width="0dp"
                    android:layout_height="fill_parent"
                    android:layout_weight="1"
                    android:background="@null"
                    android:button="@null"
                    android:checked="true"
                    android:drawableTop="@drawable/select_tab_0"
                    android:gravity="center"
                    android:paddingTop="5dp"
                    android:paddingBottom="5dp"
                    android:text="@string/lab_tab_home"
                    android:textColor="@color/select_menu_txt"
                    android:textSize="12sp" />
    
                <RadioButton
                    android:id="@+id/radio_1"
                    android:layout_width="0dp"
                    android:layout_height="fill_parent"
                    android:layout_weight="1"
                    android:background="@null"
                    android:button="@null"
                    android:drawableTop="@drawable/select_tab_1"
                    android:gravity="center"
                    android:paddingTop="5dp"
                    android:paddingBottom="5dp"
                    android:text="@string/lab_tab_discover"
                    android:textColor="@color/select_menu_txt"
                    android:textSize="12sp" />
    
                <RadioButton
                    android:id="@+id/radio_4"
                    android:layout_width="0dp"
                    android:layout_height="90dp"
                    android:layout_gravity="bottom"
                    android:layout_weight="1"
                    android:background="@null"
                    android:button="@null"
                    android:drawableTop="@mipmap/icon_march"
                    android:drawablePadding="-15dp"
                    android:gravity="center"
                    android:paddingTop="5dp"
                    android:paddingBottom="5dp"
                    android:text="@string/tab_matching"
                    android:textColor="@color/select_menu_txt"
                    android:textSize="12sp" />
    
                <RadioButton
                    android:id="@+id/radio_2"
                    android:layout_width="0dp"
                    android:layout_height="fill_parent"
                    android:layout_weight="1"
                    android:background="@null"
                    android:button="@null"
                    android:drawableTop="@drawable/select_tab_2"
                    android:gravity="center"
                    android:paddingTop="5dp"
                    android:paddingBottom="5dp"
                    android:text="@string/lab_tab_chats"
                    android:textColor="@color/select_menu_txt"
                    android:textSize="12sp" />
    
                <RadioButton
                    android:id="@+id/radio_3"
                    android:layout_width="0dp"
                    android:layout_height="fill_parent"
                    android:layout_weight="1"
                    android:background="@null"
                    android:button="@null"
                    android:drawableTop="@drawable/select_tab_3"
                    android:gravity="center"
                    android:paddingTop="5dp"
                    android:paddingBottom="5dp"
                    android:text="@string/lab_tab_my"
                    android:textColor="@color/select_menu_txt"
                    android:textSize="12sp" />
            </RadioGroup
    </RelativeLayout>
    

    此代码严格按照上述2点要求写的,但实际情况并没要达到想要的效果。

    修改后代码:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipChildren="false">
    
    
        <RadioGroup
            android:id="@+id/menu_group"
            android:layout_width="match_parent"
            android:layout_height="55dp"
            android:layout_alignParentBottom="true"
            android:background="@color/fontWhite"
            android:clipToPadding="false"
            android:gravity="bottom"
            android:orientation="horizontal"
            android:paddingTop="4dp"
            android:paddingBottom="4dp"
            android:visibility="visible">
    
            <RadioButton
                android:id="@+id/radio_0"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="@null"
                android:button="@null"
                android:checked="true"
                android:drawableTop="@drawable/select_tab_0"
                android:gravity="center"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:text="@string/lab_tab_home"
                android:textColor="@color/select_menu_txt"
                android:textSize="12sp" />
    
            <RadioButton
                android:id="@+id/radio_1"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="@null"
                android:button="@null"
                android:drawableTop="@drawable/select_tab_1"
                android:gravity="center"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:text="@string/lab_tab_discover"
                android:textColor="@color/select_menu_txt"
                android:textSize="12sp" />
    
            <RadioButton
                android:id="@+id/radio_4"
                android:layout_width="0dp"
                android:layout_height="90dp"
                android:layout_gravity="bottom"
                android:layout_weight="1"
                android:background="@null"
                android:button="@null"
                android:drawableTop="@mipmap/icon_march"
                android:drawablePadding="-16dp"
                android:gravity="center"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:text="@string/tab_matching"
                android:textColor="@color/select_menu_txt"
                android:textSize="12sp" />
    
            <RadioButton
                android:id="@+id/radio_2"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="@null"
                android:button="@null"
                android:drawableTop="@drawable/select_tab_2"
                android:gravity="center"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:text="@string/lab_tab_chats"
                android:textColor="@color/select_menu_txt"
                android:textSize="12sp" />
    
            <RadioButton
                android:id="@+id/radio_3"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="@null"
                android:button="@null"
                android:drawableTop="@drawable/select_tab_3"
                android:gravity="center"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:text="@string/lab_tab_my"
                android:textColor="@color/select_menu_txt"
                android:textSize="12sp" />
        </RadioGroup>
    </RelativeLayout>
    

    对比发现,我在RadioGroup里添加了android:clipToPadding="false"属性。
    clipToPadding属性的意思是 是否在padding区域里绘制View内容。

    相关文章

      网友评论

          本文标题:关于clipChildren属性无效的原因

          本文链接:https://www.haomeiwen.com/subject/ponfbqtx.html