Android中的insets是什么?

38
我是android开发的新手。最近我在查看别人的代码时发现了一些函数:view.onApplyWindowInsets(windowInsets), windowInsets.getSystemWindowInsetTop()。并且在同一个应用程序中频繁使用这个单词。
我试着搜索并找到了InsetDrawable类的说明:

一个Drawable,通过指定距离插入另一个Drawable。当View需要小于View实际边界的背景时使用。

有人能解释一下什么是Insets以及上面那段代码的含义吗?带有例子的说明将会很有帮助。
1个回答

58

假设你有一个TextView需要添加背景,但是你不希望背景覆盖整个View(TextView), 因此你需要使用Insets(内边距)。

Insets是一种Drawable,可以将另一个Drawable按指定的距离或内容边界的比例进行内嵌。 当视图需要小于其实际边界的背景时,就会使用它。

背景可以是一个Drawable对象。因此你需要在你的xml文件(activity_main.xml)中使用<inset>属性,例如:

然后,在使用<inset>标签后,你可以指定一些属性,例如:

<inset
    android:drawable="@drawable/(Enter the file name under drawable)"
    android:insetBottom="4dp"
    android:insetTop="4dp"/>

更多信息请查看Android developer.com上的InsetDrawable

希望这可以帮到你!


2
这是一个关于插入的实际示例,链接如下:https://dev59.com/gWox5IYBdhLWcg3wcTzr#27760463 - lasec0203

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接