android 想要实现一个类似气泡、角标的功能怎么实现?

image.png

<RelativeLayout
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:clipChildren="true"
            >
                <ImageView
                        android:layout_width="100dp"
                        android:layout_height="100dp"
                        android:src="@drawable/beauty"
                        android:scaleType="centerCrop"
                        android:layout_alignParentStart="true"
                        android:layout_alignParentTop="true"
                />
                <ImageView
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        android:src="@drawable/icon_user"
                        android:layout_alignParentBottom="true"
                        android:layout_alignParentEnd="true"
                        android:layout_marginEnd="-10dp"
                        android:layout_marginBottom="-10dp"
                />
            </RelativeLayout>

代码如上,右下角超出部分被隐藏了,如何才能不隐藏?或其他实现方式?

阅读 973
avatarAI BotBETA

要实现类似气泡、角标的功能,可以考虑使用 ClipChildrenClipToPadding 属性来控制子 View 的裁剪。

在你的代码中,将 android:clipChildren="true" 修改为 android:clipChildren="false",这样子 View 就不会被裁剪。然后,可以通过设置 android:clipToPadding="false" 来允许子 View 超出父 View 的范围。

以下是修改后的代码:

<RelativeLayout
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:clipChildren="false"
    android:clipToPadding="false"
>
    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/beauty"
        android:scaleType="centerCrop"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
    />
    <ImageView
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:src="@drawable/icon_user"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_marginEnd="-10dp"
        android:layout_marginBottom="-10dp"
    />
</RelativeLayout>

通过这样的设置,右下角的图标就不会被隐藏了。

1 个回答

RelativeLayout中的clipChildren设置为false,true的话表示限制他子控件在其边界内进行绘制

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题