What are insets in android?

Saran Sankaran picture Saran Sankaran · Jul 27, 2016 · Viewed 19k times · Source

I am beginner at android development. I was recently looking at some one else code and fond some functions view.onApplyWindowInsets(windowInsets), windowInsets.getSystemWindowInsetTop(). And this word was used again and again in the same app.

I tried googling it and found InsetDrwable class with explanation

A Drawable that insets another Drawable by a specified distance. This is used when a View needs a background that is smaller than the View's actual bounds.

Can some one explain me what is the meaning on Insets and what those piece of code up there meant?

A explanation with an example will be appreciated.

Answer

issa.ayoub.dev picture issa.ayoub.dev · Oct 12, 2016

Suppose you have a TextView and you need to add a background to the TextView. But, on the other hand, you don't want the background to scan the entire View (TextView), therefore, you need to use Insets.

A Drawable that insets another Drawable by a specified distance or fraction of the content bounds. This is used when a View needs a background that is smaller than the View's actual bounds.

The background can be a Drawable. Hence you need to use the <inset> attribute inside your xml file (activity_main.xml) "For Example".

Then, after using the <inset> tag, you can specify some attributes such as:

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

For more information please have a look at InsetDrawable on Android developer.com

Hope this helps!