androidinsets

What are insets in android?


I am beginner at android development. I was recently looking at someone else's code and found some functions view.onApplyWindowInsets(windowInsets), windowInsets.getSystemWindowInsetTop(). And this word was used frequently 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.


Solution

  • 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!