{"id":298626,"date":"2020-02-13T15:00:10","date_gmt":"2020-02-13T15:00:10","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=298626"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=298626","title":{"rendered":"Android insets: \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441\u043e \u0441\u0442\u0440\u0430\u0445\u0430\u043c\u0438 \u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u043c\u0441\u044f \u043a Android Q"},"content":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/488196\/\">Android Q \u2014 \u044d\u0442\u043e \u0434\u0435\u0441\u044f\u0442\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Android \u0441 29-\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c API. \u041e\u0434\u043d\u0430 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0438\u0434\u0435\u0439 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u044d\u0442\u043e \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f edge-to-edge, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0432\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d, \u043e\u0442 \u043d\u0438\u0436\u043d\u0435\u0439 \u0440\u0430\u043c\u043a\u0438 \u0434\u043e \u0432\u0435\u0440\u0445\u043d\u0435\u0439. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e Status Bar \u0438 Navigation Bar \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c\u0438. \u041d\u043e, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b, \u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 UI \u043d\u0435\u0442 \u2014 \u043e\u043d \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e insets.<\/p>\n<p>  \u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438\u0437\u0431\u0435\u0433\u0430\u044e\u0442 insets, \u043e\u043d\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0443 \u043d\u0438\u0445 \u0441\u0442\u0440\u0430\u0445. \u041d\u043e \u0432 Android Q \u043e\u0431\u043e\u0439\u0442\u0438 insets \u043d\u0435 \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u2014 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0438\u0445 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0432 insets \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e: \u043e\u043d\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442, \u043a\u0430\u043a\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0442\u0441\u044f \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043d\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432\u0430\u043b \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c UI. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 insets \u0438 \u0447\u0435\u043c \u043e\u043d\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b, \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 <strong>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d \u0426\u0445\u043e\u0432\u0440\u0435\u0431\u043e\u0432<\/strong>.<\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.2493%;\"><iframe src=\"https:\/\/www.youtube.com\/embed\/6Djql74drwk?rel=0&amp;showinfo=1&amp;hl=en-US\" style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" allowfullscreen scrolling=\"no\"><\/iframe><\/div>\n<\/div>\n<\/div>\n<p><a name=\"habracut\"><\/a><br \/>  <strong>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d \u0426\u0445\u043e\u0432\u0440\u0435\u0431\u043e\u0432<\/strong> (<a href=\"https:\/\/habr.com\/ru\/users\/terrakok\/\" class=\"user_link\">terrakok<\/a>) \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 <a href=\"https:\/\/habr.com\/ru\/company\/redmadrobot\/\">Redmadrobot<\/a>. \u0417\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f Android 10 \u043b\u0435\u0442 \u0438 \u043d\u0430\u043a\u043e\u043f\u0438\u043b \u043c\u043d\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0431\u044b\u043b\u043e \u043c\u0435\u0441\u0442\u0430 insets, \u0438\u0445 \u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u043a\u0430\u043a-\u0442\u043e \u043e\u0431\u043e\u0439\u0442\u0438. \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 \u043e \u0434\u043e\u043b\u0433\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438\u0437\u0431\u0435\u0433\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b insets, \u043e\u0431 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0438 \u0438 \u0431\u043e\u0440\u044c\u0431\u0435 \u0441 Android. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437 \u0441\u0432\u043e\u0435\u0433\u043e \u043e\u043f\u044b\u0442\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c insets, \u0438 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0431\u043e\u044f\u0442\u044c\u0441\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b, \u0443\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u0435\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435.<\/p>\n<p>  <em>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435. \u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d\u0430 \u043d\u0430 <\/em><a href=\"https:\/\/appsconf.ru\/moscow\/2020\"><em>Saint AppsConf 2019<\/em><\/a><em>. \u0412 \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e insets. \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0432 \u043a\u043e\u043d\u0446\u0435.<\/em><\/p>\n<h2>\u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438<\/h2>\n<p>  <strong>\u0426\u0432\u0435\u0442\u043d\u043e\u0439 Status Bar.<\/strong> \u0412\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440 \u0440\u0438\u0441\u0443\u0435\u0442 \u0446\u0432\u0435\u0442\u043d\u043e\u0439 Status Bar. \u042d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u043c\u043e\u0434\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f Android 5 \u0441 \u043d\u043e\u0432\u044b\u043c Material Design.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9l\/ii\/76\/9lii76jdfrbb5i0vq8-ecv2ikby.png\"><\/p>\n<p>  \u041a\u0430\u043a \u043f\u043e\u043a\u0440\u0430\u0441\u0438\u0442\u044c Status Bar? \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u043e \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c <code>colorPrimaryDark<\/code> \u0438 \u0446\u0432\u0435\u0442 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f.<\/p>\n<pre><code class=\"kotlin\"> &lt;style name=&quot;AppTheme&quot; parent=&quot;Theme.AppCompat.Light.NoActionBar&quot;&gt;     ...     &lt;item name=&quot;colorPrimaryDark&quot;&gt;@color\/colorAccent&lt;\/item&gt;     ... &lt;\/style&gt;<\/code><\/pre>\n<p>  \u0414\u043b\u044f Android \u0432\u044b\u0448\u0435 \u043f\u044f\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 (API \u043e\u0442 21 \u0438 \u0432\u044b\u0448\u0435) \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 \u0442\u0435\u043c\u0435:<\/p>\n<pre><code class=\"kotlin\">&lt;style name=&quot;AppTheme&quot; parent=&quot;Theme.AppCompat.Light.NoActionBar&quot;&gt;     ...     &lt;item name=&quot;android:statusBarColor&quot;&gt;@color\/colorAccent&lt;\/item&gt;     ... &lt;\/style&gt;<\/code><\/pre>\n<p>  <strong>\u0420\u0430\u0437\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u044b\u0439 Status Bar<\/strong>. \u0418\u043d\u043e\u0433\u0434\u0430 \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u044b \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u044d\u043a\u0440\u0430\u043d\u0430\u0445 \u0440\u0438\u0441\u0443\u044e\u0442 Status Bar \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/uo\/ev\/nl\/uoevnldknz2rtfq5lcqpn1mpj4g.png\"><\/p>\n<p>  \u041d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e, \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u044d\u0442\u043e <strong>\u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0435\u043c\u044b \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 activity<\/strong>.<\/p>\n<p>  \u0421\u043f\u043e\u0441\u043e\u0431 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u2014 \u043c\u0435\u043d\u044f\u0442\u044c \u0446\u0432\u0435\u0442\u0430 <strong>\u043f\u0440\u044f\u043c\u043e \u0432 runtime<\/strong>.<\/p>\n<pre><code class=\"kotlin\">override fun onCreateView(...): View {     requireActivity().window.statusBarColor = requireContext().getColor(R.color.colorPrimary)     ... }<\/code><\/pre>\n<p>  \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u043b\u0430\u0433. \u041d\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u0446\u0432\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441 \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0430\u0437\u0430\u0434.<\/p>\n<p>  <strong>\u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 Status Bar. <\/strong>\u042d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u043a\u0430\u0440\u0442\u0430\u043c\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u043a\u0430\u0440\u0442\u0430\u0445 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u0438\u0434\u043d\u043e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u0441\u0442\u0430\u0432\u0438\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440:<\/p>\n<pre><code class=\"kotlin\">&lt;style name=&quot;AppTheme&quot; parent=&quot;Theme.AppCompat.Light.NoActionBar&quot;&gt;         ...     &lt;item name=&quot;android:windowTranslucentStatus&quot;&gt;true&lt;\/item&gt;     ... &lt;\/style&gt;<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0435\u0441\u0442\u044c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044c \u2014 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f \u0432\u044b\u0448\u0435, \u0438\u043d\u0430\u0447\u0435 \u043d\u0430 \u0438\u043a\u043e\u043d\u043a\u0443 \u043d\u0430\u043b\u043e\u0436\u0438\u0442\u0441\u044f Status Bar \u0438 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043a\u0440\u0430\u0441\u0438\u0432\u043e.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/49\/8f\/c8\/498fc8wuip6i-o4eutfnviumuio.png\"><\/div>\n<p>  \u041d\u043e \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u044d\u043a\u0440\u0430\u043d\u0430\u0445 \u0432\u0441\u0435 \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/if\/-0\/0q\/if-00qq6b7zidoz-_nfyehlev7s.png\"><\/p>\n<p>  \u041a\u0430\u043a \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443? \u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443, \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 activity: \u0443 \u043d\u0430\u0441 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043e\u043d\u0438 \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442.<\/p>\n<p>  <strong>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439. <\/strong>\u041c\u044b \u0438\u0437\u0431\u0435\u0433\u0430\u0435\u043c insets \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e Status Bar, \u043d\u043e \u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/s-\/jk\/mz\/s-jkmzxzi-5xqr1ei0ku6pfubpy.png\"><\/p>\n<p>  \u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u043b\u0435\u0432\u0430 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043b\u044e\u0431\u0438\u0442, \u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u043f\u0440\u0430\u0432\u0430, \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<pre><code class=\"kotlin\">&lt;activity     ...     android:windowSoftInputMode=&quot;adjustResize&quot;&gt;     ... &lt;\/activity&gt;<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c activity \u043c\u043e\u0436\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0441\u0443\u0440\u043e\u0432\u043e. \u041d\u043e \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044c \u2014 \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0435 \u0432 <code>ScrollView<\/code>. \u0412\u0434\u0440\u0443\u0433 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u0437\u0430\u0439\u043c\u0435\u0442 \u0432\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d \u0438 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f \u043f\u043e\u043b\u043e\u0441\u043a\u0430 \u0441\u0432\u0435\u0440\u0445\u0443?<\/p>\n<p>  \u0411\u044b\u0432\u0430\u044e\u0442 \u0441\u043b\u0443\u0447\u0430\u0438 \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0442\u043a\u0443 \u043f\u0440\u0438 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043d\u0430\u0447\u0435 \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0438 \u0438\u043b\u0438 \u0441\u043f\u0440\u044f\u0442\u0430\u0442\u044c \u043b\u043e\u0433\u043e\u0442\u0438\u043f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/q3\/ia\/zl\/q3iazltlnajt-cpvdzc0u2i8zcs.png\"><\/p>\n<p>  \u041c\u044b \u043d\u0430\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0441\u0442\u044b\u043b\u0435\u0439 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439 \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c Status Bar, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441 \u0441\u043b\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c. \u0418\u0434\u0435\u043c \u043d\u0430 StackOverflow \u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u043e\u0434.<\/p>\n<pre><code class=\"kotlin\">boolean isOpened = false;  public void setListenerToRootView() {     final View activityRootView = getWindow().getDecorView().findViewById(android.R.id.content);     activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {         @Override         public void onGlobalLayout() {                  int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();                   if (heightDiff &gt; 100) { \/\/ 99% of the time the height diff will be due to a keyboard.                        Toast.makeText(getApplicationContext(), &quot;Gotcha!!! softKeyboardup&quot;, 0).show();                  if (isOpened == false) {                    \/\/Do two things, make the view top visible and the editText smaller                 }                 isOpened = true;             } else if (isOpened == true) {                 Toast.makeText(getApplicationContext(), &quot;softkeyborad Down!!!&quot;, 0).show();                 isOpened = false;             }             }     }); }<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0434\u0430\u0436\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b. \u041a\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0432 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043c\u044b \u0435\u0433\u043e \u0434\u0430\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438, \u043d\u043e \u0434\u0430\u0432\u043d\u043e.<\/p>\n<p>  \u041c\u043d\u043e\u0433\u043e \u043a\u043e\u0441\u0442\u044b\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043d\u044b\u0445 activity. \u041d\u043e \u043e\u043d\u0438 \u043f\u043b\u043e\u0445\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043a\u043e\u0441\u0442\u044b\u043b\u0438, \u043d\u043e \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c\u0438: \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u00ab\u0445\u043e\u043b\u043e\u0434\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u00bb, \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u044c\u044e. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab<a href=\"https:\/\/habr.com\/ru\/company\/redmadrobot\/blog\/426617\/\">\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u043d\u0430 \u0432\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u0438\u0434\u0430, \u0438\u043b\u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c Single-Activity<\/a>\u00bb. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435, \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Google \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u044d\u0442\u043e Single Activity \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<h2>\u0427\u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u043b\u0438 \u0434\u043e Android 10<\/h2>\n<p>  \u041c\u044b (\u0432 Redmadrobot) \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u0434\u043e\u043b\u0433\u043e \u0438\u0437\u0431\u0435\u0433\u0430\u043b\u0438 insets. \u041a\u0430\u043a \u0436\u0435 \u043d\u0430\u043c \u0443\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0438\u0445 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0431\u0435\u0437 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043a\u043e\u0441\u0442\u044b\u043b\u0435\u0439 \u0438 \u0432 \u043e\u0434\u043d\u043e\u043c activity?<\/p>\n<p>  <em>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435. \u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u0438 \u043a\u043e\u0434 \u0432\u0437\u044f\u0442\u044b \u0438\u0437 \u043c\u043e\u0435\u0433\u043e pet-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/gitlab.com\/terrakok\/gitlab-client\">GitFox<\/a>.<\/em><\/p>\n<p>  \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u044d\u043a\u0440\u0430\u043d \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438 \u043d\u0430\u0448\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0447\u0442\u043e \u0432\u043d\u0438\u0437\u0443 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 Navigation Bar. \u0412\u043d\u0438\u0437\u0443 \u0447\u0435\u0440\u043d\u0430\u044f \u043f\u043e\u043b\u043e\u0441\u043a\u0430? \u041d\u0443 \u0438 \u0447\u0442\u043e, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ce\/ab\/6v\/ceab6v6m5dqnbl9zpotdi1vqmre.jpeg\"><\/p>\n<p>  \u0421\u0432\u0435\u0440\u0445\u0443 \u043c\u044b \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0447\u0442\u043e Status Bar \u0447\u0435\u0440\u043d\u044b\u0439 \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e. \u041a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0442\u043a\u0438 \u0438 \u043a\u043e\u0434\u0430?<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/0g\/tu\/of\/0gtuoffisoeudtgxlnmqd-jicnk.png\"><\/p>\n<p>  \u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f: \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u044d\u0442\u043e activity \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0441\u0438\u043d\u0438\u0439 \u044d\u0442\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0441 \u0431\u043e\u0442\u043e\u043c \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 (\u0441 Tab&#8217;\u0430\u043c\u0438), \u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0437\u0435\u043b\u0435\u043d\u044b\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u0441 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u043e\u043c. \u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e Toolbar \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0434 Status Bar. \u041a\u0430\u043a \u043c\u044b \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0431\u0438\u043b\u0438\u0441\u044c?<\/p>\n<p>  \u0412 Android \u0435\u0441\u0442\u044c \u0445\u0438\u0442\u0440\u044b\u0439 \u0444\u043b\u0430\u0433 <code>fitSystemWindow<\/code>. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u00abtrue\u00bb, \u0442\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441\u0430\u043c \u0441\u0435\u0431\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442 padding, \u0447\u0442\u043e\u0431\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u043e \u043f\u043e\u0434 Status Bar. \u042f \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433 \u2014 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0441\u0442\u044b\u043b\u044c \u043e\u0442 Google \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0431\u043e\u0438\u0442\u0441\u044f insets. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435, \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0431\u0435\u0437 insets.<\/p>\n<p>  \u0424\u043b\u0430\u0433 <code>FitSystemWindow=\u201dtrue\u201d<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 padding \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438. \u041d\u043e \u0432\u0430\u0436\u043d\u0430 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f: \u0435\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0438\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b \u044d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433 \u0432 \u00abtrue\u00bb, \u0434\u0430\u043b\u044c\u0448\u0435 \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0443\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b \u043e\u0442\u0441\u0442\u0443\u043f\u044b.<\/p>\n<p>  \u0424\u043b\u0430\u0433 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u044d\u043a\u0440\u0430\u043d \u0441 \u0434\u0432\u0443\u043c\u044f \u0442\u0430\u0431\u0430\u043c\u0438. \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <code>replace<\/code> \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u043e\u0434\u0438\u043d \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439, \u0438 \u0432\u0441\u0435 \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/lv\/02\/_u\/lv02_ui9sepxlvi7djz_xpem2sy.jpeg\"><\/p>\n<p>  \u0423 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u0442\u043e\u0436\u0435 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0444\u043b\u0430\u0433 <code>FitSystemWindow=\u201dtrue\u201d<\/code>, \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0442\u044c\u0441\u044f. \u041d\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e, \u043f\u043e\u0447\u0435\u043c\u0443? \u041e\u0442\u0432\u0435\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043a\u043e\u0441\u0442\u044b\u043b\u044c, \u0430 \u043e\u043d \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  \u041d\u043e \u043c\u044b \u043d\u0430\u0448\u043b\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 <a href=\"https:\/\/stackoverflow.com\/questions\/31190612\/fitssystemwindows-effect-gone-for-fragments-added-via-fragmenttransaction\">Stack Overflow<\/a>: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u044b\u043c \u043d\u0435 <code>FrameLayout<\/code>, \u0430 <code>CoordinatorLayout<\/code>. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0446\u0435\u043b\u0435\u0439, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<h3>\u041f\u043e\u0447\u0435\u043c\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442?<\/h3>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 <code>CoordinatorLayout<\/code>.<\/p>\n<pre><code class=\"kotlin\">@Override public void onAttachedToWindow() {        super.onAttachedToWindow();     ...         if (mLastInsets == null &amp;&amp; ViewCompat.getFitsSystemWindows(this)) {                  \/\/ We're set to fitSystemWindows but we haven't had any insets yet...         \/\/ We should request a new dispatch of window insets         ViewCompat.requestApplyInsets(this);     }          ... }<\/code><\/pre>\n<p>  \u0412\u0438\u0434\u0438\u043c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0443\u0436\u043d\u044b insets, \u0430 \u0438\u0445 \u043d\u0435\u0442. \u041d\u0430\u0434\u043e \u0438\u0445 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u043e\u043a\u043d\u043e. \u041c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u043a-\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 insets, \u043d\u043e \u043c\u044b \u0441 \u043d\u0438\u043c\u0438 \u043d\u0435 \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c <code>Coordinator<\/code>.<\/p>\n<p>  \u0412\u0435\u0441\u043d\u043e\u0439 2019 \u043c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0432 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u0440\u043e\u0448\u0435\u043b Google I\/O. \u041c\u044b \u0435\u0449\u0435 \u043d\u0435 \u0441\u043e \u0432\u0441\u0435\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b\u0438 \u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0440\u0430\u0441\u0441\u0443\u0434\u043a\u0438. \u041d\u043e \u043c\u044b \u0437\u0430\u043c\u0435\u0447\u0430\u043b\u0438, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 Tab&#8217;\u043e\u0432 \u0432\u043d\u0438\u0437\u0443 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0442\u043a\u0430, \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 UI. \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u044d\u0442\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u2014 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c <code>replace<\/code> \u043d\u0430 <code>show\/hide<\/code>, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0437\u0430\u043d\u043e\u0432\u043e \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0442\u043a\u0443.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hx\/7l\/vz\/hx7lvzsl8-kfv3qqac2pbvllt8q.jpeg\"><\/p>\n<p>  \u041c\u0435\u043d\u044f\u0435\u043c, \u0438 \u043e\u043f\u044f\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u2014 \u0432\u0441\u0435 \u0441\u043b\u043e\u043c\u0430\u043b\u043e\u0441\u044c! \u0412\u0438\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u043a\u043e\u0441\u0442\u044b\u043b\u0438 \u0440\u0430\u0437\u0431\u0440\u043e\u0441\u0430\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u043d\u0430\u0434\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438. \u0418\u0437\u0443\u0447\u0430\u0435\u043c \u043a\u043e\u0434 \u0438 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043b\u044e\u0431\u0430\u044f ViewGroup \u0442\u043e\u0436\u0435 \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 insets.<\/p>\n<pre><code class=\"kotlin\"> @Override public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) {         insets = super.dispatchApplyWindowInsets(insets);          if (!insets.isConsumed()) {                  final int count = getChildCount();                 for (int i = 0; i &lt; count; i++) {             insets = getChildAt(i).dispatchApplyWindowInsets(insets);                          if (insets.isConsumed()) {                           break;             }         }     }     return insets; }<\/code><\/pre>\n<p>  \u0412\u043d\u0443\u0442\u0440\u0438 \u0442\u0430\u043a\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430: \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u044c \u043a\u0442\u043e-\u0442\u043e insets \u0443\u0436\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b, \u0442\u043e \u0432\u0441\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 View \u0432\u043d\u0443\u0442\u0440\u0438 ViewGroup \u0438\u0445 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442. \u0427\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u043b\u044f \u043d\u0430\u0441? \u041f\u043e\u043a\u0430\u0436\u0443 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043d\u0430\u0448\u0435\u0433\u043e FrameLayout, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442 Tab&#8217;\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/h1\/fo\/nn\/h1fonnc4qrqpmj_x-fc8m47ptci.png\"><\/p>\n<p>  \u0412\u043d\u0443\u0442\u0440\u0438 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0444\u043b\u0430\u0433 <code>fitSystemWindow=\u201dtrue\u201d<\/code>. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 insets. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c <code>HIDE<\/code> \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u0438 <code>SHOW<\/code> \u0432\u0442\u043e\u0440\u043e\u0433\u043e. \u041d\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u0435\u0440\u0441\u0442\u043a\u0435 \u2014 \u0443 \u043d\u0435\u0433\u043e View \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c, \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0440\u044b\u0442\u0430.<\/p>\n<p>  \u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0438\u0434\u0435\u0442 \u043f\u043e \u0441\u0432\u043e\u0438\u043c View: \u0431\u0435\u0440\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442, \u0434\u0430\u0435\u0442 \u0435\u043c\u0443 insets, \u0430 \u0443 \u043d\u0435\u0433\u043e <code>fitSystemWindow=\u201dtrue\u201d<\/code> \u2014 \u043e\u043d \u0432\u0437\u044f\u043b \u0438\u0445 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b. \u041f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e, FrameLayout \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b, \u0447\u0442\u043e insets \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b, \u0438 \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0443 \u043d\u0435 \u043e\u0442\u0434\u0430\u0435\u0442. \u0412\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u043d\u0430\u0434\u043e. \u041d\u043e \u043d\u0430\u0441 \u044d\u0442\u043e \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0436\u0435 \u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<h3>\u041f\u0438\u0448\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e ViewGroup<\/h3>\n<p>  \u041c\u044b \u043f\u0440\u0438\u0448\u043b\u0438 \u0438\u0437 Java, \u0430 \u0442\u0430\u043c \u041e\u041e\u041f \u0432\u043e \u0432\u0441\u0435\u0439 \u043a\u0440\u0430\u0441\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u041c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0441\u0432\u043e\u044e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e ViewGroup, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434 <code>dispatchApplyWindowInsets<\/code>. \u041e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a, \u043a\u0430\u043a \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e: \u0432\u0441\u0435\u043c \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0442\u0434\u0430\u0435\u0442 insets, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0448\u043b\u0438, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043c\u044b \u0438\u0445 \u0438\u043b\u0438 \u043d\u0435\u0442.<\/p>\n<pre><code class=\"kotlin\">class WindowInsetFrameLayout @JvmOverloads constructor(     context: Context,           attrs: AttributeSet? = null,          defStyleRes: Int = 0 ) : FrameLayout(context, attrs, defStyleRes) {      override fun dispatchApplyWindowInsets(insets: WindowInsets): WindowInsets {          for (child in (0 until childCount)) {             getChildAt(child).dispatchApplyWindowInsets(insets)         }         return insets.consumeSystemWindowInsets()     } }<\/code><\/pre>\n<p>  \u041a\u0430\u0441\u0442\u043e\u043c\u043d\u0430\u044f ViewGroup \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043f\u0440\u043e\u0435\u043a\u0442 \u0442\u043e\u0436\u0435 \u2014 \u0432\u0441\u0435, \u043a\u0430\u043a \u043d\u0430\u043c \u043d\u0430\u0434\u043e. \u041d\u043e \u0434\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0435\u0449\u0435 \u043d\u0435 \u0434\u043e\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442. \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u0447\u0442\u043e \u043d\u0430\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0438 \u043d\u0430 Google IO, \u0442\u043e \u043f\u043e\u043d\u044f\u043b\u0438, \u0447\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0442\u0430\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f.<\/p>\n<h2>Android 10<\/h2>\n<p>  Android 10 \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0434\u0432\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 UI, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u0440\u043e\u0433\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043e \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f: edge-to-edge \u0438 Gestural Navigation.<\/p>\n<p>  <strong>Edge-to-edge. <\/strong>\u042d\u0442\u0430 <a href=\"https:\/\/www.youtube.com\/watch?v=Nf-fP2u9vjI\">\u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f<\/a> \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c <a href=\"https:\/\/medium.com\/androiddevelopers\/gesture-navigation-going-edge-to-edge-812f62e4e83e\">\u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e<\/a> \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435. \u0414\u043b\u044f \u043d\u0430\u0441, \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f<strong> \u043f\u043e\u0434 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c\u0438 \u043f\u0430\u043d\u0435\u043b\u044f\u043c\u0438 Status Bar \u0438 Navigation Bar.<\/strong><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/cr\/gl\/nh\/crglnh9iw__fu4lct0gavaibqey.jpeg\"><\/p>\n<p>  \u0420\u0430\u043d\u044c\u0448\u0435 \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u044d\u0442\u043e \u043a\u0430\u043a-\u0442\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434 Status Bar.<\/p>\n<p>  \u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u0442\u043e \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u043d\u043e \u0438 \u0434\u0430\u043b\u044c\u0448\u0435, <strong>\u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434 Navigation Bar.<\/strong><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tl\/pl\/it\/tlplit1o65rn55edkixuuojxtha.png\" width=\"350\"><\/div>\n<p>  <strong>Gestural Navigation. <\/strong>\u042d\u0442\u043e\u0432\u0442\u043e\u0440\u0430\u044f \u0432\u0430\u0436\u043d\u0430\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u2014 <a href=\"https:\/\/www.youtube.com\/watch?v=Ljtz7T8R_Hk\">\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u0436\u0435\u0441\u0442\u0430\u043c\u0438<\/a>. \u041e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043f\u0430\u043b\u044c\u0446\u0430\u043c\u0438 \u0441 \u043a\u0440\u0430\u044f \u044d\u043a\u0440\u0430\u043d\u0430. \u0420\u0435\u0436\u0438\u043c \u0436\u0435\u0441\u0442\u043e\u0432 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439, \u0432\u0441\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u043d\u0430\u0447\u0435, \u043d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 Navigation Bar.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u044b \u043f\u043e\u043d\u044f\u043b\u0438, \u0447\u0442\u043e \u0432\u0441\u0435 \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e. \u041d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c insets, \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041f\u043e\u0440\u0430 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043a\u043e\u0435 insets.<\/p>\n<h2>Insets. \u0427\u0442\u043e \u043e \u043d\u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c?<\/h2>\n<p>  <\/p>\n<blockquote><p>Insets \u0431\u044b\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u043f\u0443\u0433\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.<\/p><\/blockquote>\n<p>\u0418\u043c \u044d\u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0443\u0434\u0430\u0435\u0442\u0441\u044f, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432 Android 5.<\/p>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432\u0441\u0435 \u043d\u0435 \u0442\u0430\u043a \u0441\u0442\u0440\u0430\u0448\u043d\u043e. \u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f insets \u043f\u0440\u043e\u0441\u0442\u0430 \u2014 <strong>\u043e\u043d\u0438 \u0441\u043e\u043e\u0431\u0449\u0430\u044e\u0442 \u043e \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e UI \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/strong> \u042d\u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c Navigation Bar, Status Bar \u0438\u043b\u0438 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430. \u041a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 UI, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0435\u0440\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0415\u0435 \u043d\u0435 \u043d\u0430\u0434\u043e \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u043c\u0438 \u043a\u043e\u0441\u0442\u044b\u043b\u044f\u043c\u0438, \u0442\u043e\u043b\u044c\u043a\u043e insets.<\/p>\n<p>  <strong>\u0426\u0435\u043b\u044c insets \u2014 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b<\/strong>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043d\u0430\u0434 \u043d\u0430\u0448\u0435\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0433 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>  <strong>\u0414\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 inset<\/strong> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <code>Windowlnsets<\/code> \u0434\u043b\u044f Android 10 \u0438 <code>WindowInsetsCompat<\/code> \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439.<\/p>\n<p>  \u0412 Android 10 \u0435\u0441\u0442\u044c <strong>5 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0438\u0434\u043e\u0432 insets<\/strong> \u0438 \u043e\u0434\u0438\u043d \u00ab\u0431\u043e\u043d\u0443\u0441\u043d\u044b\u0439\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435 inset, \u0430 \u0438\u043d\u0430\u0447\u0435. \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0432\u0438\u0434\u0430\u043c\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u2014 System Window Insets.<\/p>\n<h3>System Window Insets<\/h3>\n<p>  \u041f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0432 Android 5.0 (API 21). \u041f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c <code>getSystemWindowInsets()<\/code>.<\/p>\n<p>  \u042d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u0438\u043f insets, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0430\u0434\u043e \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e. \u041e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c Status Bar, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0430 \u043f\u043e\u0442\u043e\u043c Navigation Bar \u0438 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043d\u0438 \u0440\u0435\u0448\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043a\u043e\u0433\u0434\u0430 Navigation Bar \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c. \u041a\u0430\u043a \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435: \u043a\u043d\u043e\u043f\u043a\u0430 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u0434 Navigation Bar, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0430 \u043d\u0435\u0435 \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u0438 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u0434\u043e\u0432\u043e\u043b\u0435\u043d.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/nx\/yj\/tt\/nxyjttdppbkrnrnqkspovzp4hko.png\" width=\"350\"><\/div>\n<h3>Tappable element insets<\/h3>\n<p>  \u041f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 Android 10. \u041f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c <code>getTappableElementInsets()<\/code>.<\/p>\n<p>  \u042d\u0442\u0438 insets \u043f\u043e\u043b\u0435\u0437\u043d\u044b <strong>\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 Navigation Bar<\/strong>. \u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0441\u0430\u043c <strong>\u041a\u0440\u0438\u0441 \u0411\u0435\u0439\u043d<\/strong>, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0431\u044b\u0442\u044c \u043f\u0440\u043e \u044d\u0442\u043e\u0442 \u0442\u0438\u043f insets \u0438 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e System Window Insets. \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u0440\u0443\u0442\u043e\u0435 \u043d\u0430 100%, \u0430 \u043d\u0435 \u043d\u0430 99,9%, \u0441\u0442\u043e\u0438\u0442 \u0438\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rl\/yd\/fk\/rlydfkwy39pfrc7jfhizhqdkg0q.png\"><\/p>\n<p>  \u0421\u0432\u0435\u0440\u0445\u0443 \u043c\u0430\u043b\u0438\u043d\u043e\u0432\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u044b System Window Insets, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0434\u0443\u0442 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u0430\u0445 Navigation Bar. \u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0438 \u0441\u043f\u0440\u0430\u0432\u0430, \u0438 \u0441\u043b\u0435\u0432\u0430 \u043e\u043d\u0438 \u0440\u0430\u0432\u043d\u044b Navigation Bar.<\/p>\n<p>  \u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u0436\u0435\u0441\u0442\u0430\u043c\u0438: \u043f\u0440\u0438 \u0440\u0435\u0436\u0438\u043c\u0435 \u0441\u043f\u0440\u0430\u0432\u0430 \u043c\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c, \u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u044f\u043d\u0435\u043c \u043f\u0430\u043b\u044c\u0446\u0430\u043c\u0438 \u0441\u043d\u0438\u0437\u0443 \u0432\u0432\u0435\u0440\u0445. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043a\u043d\u043e\u043f\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0435 \u0443\u0431\u0438\u0440\u0430\u0442\u044c. \u041c\u044b \u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u043d\u0430\u0436\u0438\u043c\u0430\u0442\u044c \u043d\u0430 \u043d\u0430\u0448\u0443 \u043a\u043d\u043e\u043f\u043a\u0443 FAB (Floating Action Button), \u043d\u0438\u043a\u0442\u043e \u043c\u0435\u0448\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e <code>TappableElementInsets<\/code> \u043f\u0440\u0438\u0434\u0443\u0442 \u043f\u0443\u0441\u0442\u044b\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e FAB \u0434\u0432\u0438\u0433\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u041d\u043e \u0435\u0441\u043b\u0438 \u0441\u0434\u0432\u0438\u043d\u0435\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0448\u0435, \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e.<\/p>\n<p>  <strong>\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0436\u0435\u0441\u0442\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c Navigation Bar<\/strong> (color adaptation). \u042d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u044f\u0442\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zv\/ei\/qz\/zveiqz33n9dc290ib9yhrrjl09u.png\"><\/p>\n<p>  \u0412\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043c\u0443\u0449\u0435\u043d \u0431\u043b\u0438\u0437\u043a\u0438\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u041c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u0434\u043b\u044f \u0436\u0435\u0441\u0442\u043e\u0432, \u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0434\u043b\u044f \u043d\u0430\u0436\u0430\u0442\u0438\u044f, \u043d\u043e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u0438\u0431\u043e \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c FAB \u0432\u044b\u0448\u0435, \u043b\u0438\u0431\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043f\u0440\u0430\u0432\u0430.<\/p>\n<h3>System Gesture Insets<\/h3>\n<p>  \u041f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 Android 10. \u041f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c <code>getSystemGestureInsets()<\/code>.<\/p>\n<p>  \u042d\u0442\u0438 insets \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0435\u0439 \u0436\u0435\u0441\u0442\u0430\u043c\u0438. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 UI \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0435\u0440\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u043e System Gesture Insets \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043d\u0435 UI \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0430\u043c\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0436\u0435\u0441\u0442\u044b. \u041e\u043d\u0438 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0442\u0435 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0436\u0435\u0441\u0442\u044b.<\/p>\n<p>  \u041e\u0431\u043b\u0430\u0441\u0442\u0438 \u044d\u0442\u0438\u0445 insets \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0435, \u0447\u0442\u043e \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u044b \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u0436\u0435\u043b\u0442\u044b\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vv\/8d\/jl\/vv8djlgxe4cnjchozbllrysagd0.png\"><\/p>\n<p>  \u041d\u043e \u0445\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u0442\u044c \u2014 \u043e\u043d\u0438 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u0442\u0430\u043a\u0438\u0435. \u041c\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0443\u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a\u0438\u0435 \u043d\u043e\u0432\u044b\u0435 \u044d\u043a\u0440\u0430\u043d\u044b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0435\u0442 Samsung \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438. \u0423\u0436\u0435 \u0435\u0441\u0442\u044c \u0434\u0435\u0432\u0430\u0439\u0441\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u043a\u0440\u0430\u043d \u0441\u043e \u0432\u0441\u0435\u0445 \u0441\u0442\u043e\u0440\u043e\u043d. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, insets \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043c\u044b \u043e\u0436\u0438\u0434\u0430\u0435\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0435\u0439: \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 insets \u0432 System Gesture Insets, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0430\u043c\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0436\u0435\u0441\u0442\u044b.<\/p>\n<p>  \u042d\u0442\u0438 insets \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0432\u044b \u0441\u0430\u043c\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0436\u0435\u0441\u0442\u044b, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0440\u044f\u0434\u043e\u043c \u0441 \u043a\u0440\u0430\u0435\u043c \u044d\u043a\u0440\u0430\u043d\u0430. \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u0447\u0442\u043e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0432 \u0443\u0433\u043b\u0443 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0431\u0443\u0434\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0441\u043a\u0430\u0437\u0430\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435: \u00ab\u041a\u0432\u0430\u0434\u0440\u0430\u0442 \u0432\u043e\u043a\u0440\u0443\u0433 \u0442\u043e\u0447\u043a\u0438 \u044f \u0431\u0443\u0434\u0443 \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u00bb.<\/p>\n<h3>Mandatory system gesture insets<\/h3>\n<p>  \u041f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 Android 10. \u042d\u0442\u043e \u043f\u043e\u0434\u0442\u0438\u043f System Gesture Insets, \u043d\u043e \u043e\u043d\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>  \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 <code>getMandatorySystemGestureInsets()<\/code>, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043e\u0431\u043b\u0430\u0441\u0442\u044c, \u0433\u0434\u0435 \u043e\u043d\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u00ab\u0431\u0435\u0437\u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435: \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0436\u0435\u0441\u0442 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0441\u043d\u0438\u0437\u0443 \u0432\u0432\u0435\u0440\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0439\u0442\u0438 \u0438\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d. \u0417\u0434\u0435\u0441\u044c <strong>\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0436\u0435\u0441\u0442\u044b \u0441\u0430\u043c\u0430<\/strong>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/89\/gl\/df\/89gldfknoq8z9dje_naytwp0pti.png\" width=\"450\"><\/div>\n<p>  \u041d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043d\u0438\u0437\u0443 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0438 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0430\u043a\u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432. \u0420\u0430\u0431\u043e\u0442\u0430\u0439\u0442\u0435 \u0441 \u044d\u0442\u0438\u043c, \u043a\u0430\u043a \u0441 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0435\u0439.<\/p>\n<p>  \u042d\u0442\u043e \u0431\u044b\u043b\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u044b\u0435 \u0432\u0438\u0434\u044b insets. \u041d\u043e \u0435\u0441\u0442\u044c \u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0434\u0430\u0436\u0435 \u0434\u043e Android 5 \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0438\u043d\u0430\u0447\u0435.<\/p>\n<h3>Stable Insets<\/h3>\n<p>  \u041f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0441 Android 5.0 (API 21). \u041f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c <code>getStableInsets()<\/code>.<\/p>\n<p>  \u0414\u0430\u0436\u0435 \u043e\u043f\u044b\u0442\u043d\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0433\u0443\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b. \u0420\u0430\u0441\u043a\u0440\u043e\u044e \u0441\u0435\u043a\u0440\u0435\u0442: \u044d\u0442\u0438 insets \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439: \u0432\u0438\u0434\u0435\u043e\u043f\u043b\u0435\u0435\u0440\u044b, \u0438\u0433\u0440\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u044f\u0447\u0435\u0442\u0441\u044f \u043b\u044e\u0431\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 UI, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 Status Bar, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u043a\u0440\u0430\u0439 \u044d\u043a\u0440\u0430\u043d\u0430. \u041d\u043e \u0441\u0442\u043e\u0438\u0442 \u043a\u043e\u0441\u043d\u0443\u0442\u044c\u0441\u044f \u044d\u043a\u0440\u0430\u043d\u0430, \u043a\u0430\u043a Status Bar \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0441\u0432\u0435\u0440\u0445\u0443.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u041d\u0410\u0417\u0410\u0414\u00bb \u0432\u044b \u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u044d\u043a\u0440\u0430\u043d\u0430, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 System Window Insets, \u0442\u043e \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c Tab \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0441\u0432\u0435\u0440\u0445\u0443 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f UI, \u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u043f\u0440\u044b\u0433\u0430\u0435\u0442 \u0432\u043d\u0438\u0437. \u0415\u0441\u043b\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0442\u044c \u044d\u043a\u0440\u0430\u043d, Status Bar \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442, \u043a\u043d\u043e\u043f\u043a\u0430 \u043f\u043e\u0434\u043f\u0440\u044b\u0433\u0438\u0432\u0430\u0435\u0442 \u0432\u0432\u0435\u0440\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e System Window Insets \u0438\u0441\u0447\u0435\u0437\u043b\u0438.<\/p>\n<p>  \u0414\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 Stable Insets. \u041e\u043d\u0438 \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0435 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0434 \u0432\u0430\u0448\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u0421 \u044d\u0442\u0438\u043c insets \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0443\u0437\u043d\u0430\u0442\u044c \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 Status Bar \u0432 \u044d\u0442\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0432\u0430\u043c \u0445\u043e\u0447\u0435\u0442\u0441\u044f.<\/p>\n<p>  <em>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435. \u041c\u0435\u0442\u043e\u0434 <\/em><code><em>getStableInsets()<\/em><\/code><em> \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441 API 21. \u0420\u0430\u043d\u044c\u0448\u0435 \u0431\u044b\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u044d\u043a\u0440\u0430\u043d\u0430.&nbsp;<\/em><\/p>\n<p>  \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 5 \u0432\u0438\u0434\u043e\u0432 insets, \u043d\u043e \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a insets \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e. \u041e\u043d \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0447\u0435\u043b\u043a\u0430\u043c\u0438 \u0438 \u0432\u044b\u0440\u0435\u0437\u0430\u043c\u0438.<\/p>\n<h3>\u0427\u0435\u043b\u043a\u0438 \u0438 \u0432\u044b\u0440\u0435\u0437\u044b<\/h3>\n<p>  \u042d\u043a\u0440\u0430\u043d\u044b \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0435. \u041e\u043d\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0433\u043e\u0432\u0430\u0442\u044b\u0435, \u0441 \u043e\u0434\u043d\u043e\u0439 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0432\u044b\u0440\u0435\u0437\u0430\u043c\u0438 \u043f\u043e\u0434 \u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u0447\u0435\u043b\u043a\u0430\u043c\u0438 \u0441\u043e \u0432\u0441\u0435\u0445 \u0441\u0442\u043e\u0440\u043e\u043d.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ls\/kv\/sc\/lskvscp_j-hy2gesyynicb346cq.png\"><\/p>\n<p>  \u0414\u043e 28 API \u043c\u044b \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0434\u043e\u0433\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 insets, \u0447\u0442\u043e \u0442\u0430\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442. \u041d\u043e \u0441 28 API \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 (\u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e Android) \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043a\u043b\u0430\u0441\u0441 <code>DisplayCutout<\/code>. \u041e\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0442\u0435\u0445 \u0436\u0435 insets, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0438\u043f\u044b. \u041a\u043b\u0430\u0441\u0441 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0437\u043d\u0430\u0442\u044c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432.<\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430\u0431\u043e\u0440 \u0444\u043b\u0430\u0433\u043e\u0432 \u0443 <code>WindowManager.LayoutParams<\/code>. \u041e\u043d\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u0432\u044b\u0440\u0435\u0437\u043e\u0432. \u0412\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u043d\u0438\u0445, \u0430 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f: \u0432 \u043f\u0435\u0439\u0437\u0430\u0436\u043d\u043e\u043c \u0438 \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443.<\/p>\n<p>  \u0424\u043b\u0430\u0433\u0438 <code>window.attributes.layoutInDisplayCutoutMode =<\/code><\/p>\n<ul>\n<li><code>LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT<\/code>. \u0412 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u2014 \u0435\u0441\u0442\u044c, \u0430 \u0432 \u043f\u0435\u0439\u0437\u0430\u0436\u043d\u043e\u043c \u2014 \u0447\u0435\u0440\u043d\u0430\u044f \u043f\u043e\u043b\u043e\u0441\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/li>\n<li><code>LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER<\/code>. \u041d\u0435\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u2014 \u0447\u0435\u0440\u043d\u0430\u044f \u043f\u043e\u043b\u043e\u0441\u0430.<\/li>\n<li><code>LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES<\/code> \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c.<\/li>\n<\/ul>\n<p>  \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c, \u043d\u043e \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043d\u0438\u043c\u0438 \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0441 \u043b\u044e\u0431\u044b\u043c\u0438 \u0434\u0440\u0443\u0433\u0438\u043c Insets.<\/p>\n<pre><code class=\"kotlin\">insets.displayCutout     .boundingRects     .forEach { rect -&gt; ... }<\/code><\/pre>\n<p>  \u041a \u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 callback \u0441 insets \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c <code>displayCutout<\/code>. \u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u043e \u043d\u0435\u043c\u0443 \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u0442\u044c, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u044b\u0440\u0435\u0437\u044b \u0438 \u0447\u0435\u043b\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0438\u043c\u0438, \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/company\/funcorp\/blog\/419109\/\">\u0432 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>.<\/p>\n<p>  \u0420\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0441 6 \u0432\u0438\u0434\u0430\u043c\u0438 insets. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<h2>\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442<\/h2>\n<p>  Insets \u043d\u0443\u0436\u043d\u044b, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0432\u0435\u0440\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0447\u0442\u043e-\u0442\u043e \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Navigation Bar.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ft\/ct\/_w\/ftct_wh_dc64t9rw6ir_7zpqg8m.png\"><\/p>\n<p>  \u0411\u0435\u0437 insets \u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0445 Navigation Bar \u0438 Status Bar. \u041d\u0435 \u0443\u0434\u0438\u0432\u043b\u044f\u0439\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 <code>SystemWindowInsets<\/code>, \u0442\u0430\u043a\u043e\u0435 \u0431\u044b\u0432\u0430\u0435\u0442.<\/p>\n<h3>\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 insets<\/h3>\n<p>  \u0412\u0441\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f UI \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u0434\u0435\u0440\u0435\u0432\u043e, \u043d\u0430 \u043a\u043e\u043d\u0446\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0435\u0441\u0442\u044c View. \u0423\u0437\u043b\u044b \u2014 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e ViewGroup. \u041e\u043d\u0438 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u043e\u0442 View, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 insets \u0438\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c <code>dispatchApplyWindowInsets<\/code>. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 View, \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0435\u0442 insets \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u0434\u0435\u0440\u0435\u0432\u0443. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 View.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/jy\/rw\/hk\/jyrwhkavrimytpqs4je0ltfn7-w.png\"><\/div>\n<p>  \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043d\u0435\u0439 \u043c\u0435\u0442\u043e\u0434 <code>dispatchApplyWindowInsets<\/code>, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 insets. \u041e\u0431\u0440\u0430\u0442\u043d\u043e \u044d\u0442\u0430 View \u0434\u043e\u043b\u0436\u043d\u0430 \u0447\u0442\u043e-\u0442\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c. \u0427\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435?<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e WindowInsets. <\/p>\n<h3>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 insets<\/h3>\n<p>  \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 <code>dispatchApplyWindowInsets<\/code> \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438: \u043f\u0440\u0438\u0448\u043b\u0438 insets, \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u0441\u0435 \u0432\u043d\u0443\u0442\u0440\u0438.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043a\u043b\u0430\u0441\u0441 View \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 Javadoc, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0432\u0435\u0440\u0445 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430, \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c: \u00ab\u041d\u0435 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434!\u00bb  <\/p>\n<blockquote><p>Insets \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043b\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435.<\/p><\/blockquote>\n<p><strong>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong>. Google \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 insets. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0442\u043e\u0434 <code>setOnApplyWindowInsetsListener(listener)<\/code>. \u041c\u044b \u0441\u0442\u0430\u0432\u0438\u043c callback, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u0438 insets.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0430\u043c \u044d\u0442\u043e \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u043c\u043e\u0436\u043d\u043e <strong>\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 View \u0438 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u0435\u0442\u043e\u0434<\/strong> <code>onApplyWindowInsets(WindowInsets insets)<\/code>. \u0412 \u043d\u0435\u0433\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 insets.<\/p>\n<p>  Google \u043d\u0435 \u0441\u0442\u0430\u043b \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u043c\u0435\u0441\u0442\u0435. \u042d\u0442\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0432\u0441\u0435 Toolbar \u0438\u043b\u0438 ListView, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c insets. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0431\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0433\u043e\u0442\u043e\u0432\u0443\u044e View, \u0434\u0430\u0436\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u0443\u044e, \u0438 \u0441\u0430\u043c\u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0442\u0443\u0434\u0430 \u0434\u0435\u043b\u0435\u0433\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 insets \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0427\u0442\u043e \u0436\u0435 \u043d\u0430\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c?<\/p>\n<h3>\u0417\u0430\u0447\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 insets, \u0442\u043e \u0435\u0441\u0442\u044c ViewGroup. \u0427\u0442\u043e \u043e\u043d\u0430 \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0431\u044f. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0440\u0430\u043d\u044c\u0448\u0435.<\/p>\n<p>  \u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 insets \u043f\u0440\u0438\u0448\u043b\u0438 \u0441\u0432\u0435\u0440\u0445\u0443 \u0438 \u0441\u043d\u0438\u0437\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e 100 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439. ViewGroup \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0445 \u043f\u0435\u0440\u0432\u043e\u0439 View, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c. \u042d\u0442\u0430 View \u0438\u0445 \u043a\u0430\u043a-\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 insets: \u0441\u0432\u0435\u0440\u0445\u0443 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u0434\u043e 0, \u0430 \u0441\u043d\u0438\u0437\u0443 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442. \u0421\u0432\u0435\u0440\u0445\u0443 \u043e\u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0430 padding \u0438\u043b\u0438 margin, \u0430 \u0441\u043d\u0438\u0437\u0443 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u043b\u0430 \u0438 \u043e\u0431 \u044d\u0442\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0430. \u0414\u0430\u043b\u044c\u0448\u0435 ViewGroup \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 insets \u0432\u0442\u043e\u0440\u043e\u0439 View.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tj\/-a\/rw\/tj-arwxjkus-n6xnvl099lqbqqg.png\"><\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f View \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0438 \u043e\u0442\u0434\u0430\u0435\u0442 insets. \u0422\u0435\u043f\u0435\u0440\u044c ViewGroup \u0432\u0438\u0434\u0438\u0442, \u0447\u0442\u043e insets \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b \u0438 \u0441\u0432\u0435\u0440\u0445\u0443, \u0438 \u0441\u043d\u0438\u0437\u0443 \u2014 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c, \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u043d\u0443\u043b\u044f\u043c.<\/p>\n<p>  <strong>\u0422\u0440\u0435\u0442\u044c\u044f View \u0434\u0430\u0436\u0435 \u043d\u0435 \u0443\u0437\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u0431\u044b\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e insets \u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e<\/strong>. ViewGroup \u0432\u0435\u0440\u043d\u0435\u0442 insets \u043d\u0430\u0437\u0430\u0434 \u0442\u043e\u043c\u0443, \u043a\u0442\u043e \u0438\u0445 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b.<\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u043e\u0439, \u0442\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0441\u0435\u0431\u0435 \u0438\u0434\u0435\u044e \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0442\u0435 \u0436\u0435 insets, \u0447\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u0438. \u041c\u044b \u0445\u043e\u0442\u0435\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e View \u0434\u0430\u0436\u0435 \u043d\u0435 \u0443\u0437\u043d\u0430\u043b\u0438, \u0447\u0442\u043e \u0431\u044b\u043b\u0438 insets. \u0418\u0434\u0435\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0430 \u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439. \u041d\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0435\u0442. Google \u043d\u0435 \u0437\u0440\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432 insets \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u043a\u0430\u043a \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<p>  \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u043e \u0432\u0441\u0435\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 View \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u0445\u043e\u0434\u0438\u043b\u0438 insets \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0434\u0432\u0430 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430, \u043e\u0434\u0438\u043d \u043a\u0442\u043e-\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0435\u0449\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b. \u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439 \u043c\u044b \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443.<\/p>\n<h2>\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430<\/h2>\n<p>  \u0421 \u0442\u0435\u043e\u0440\u0438\u0435\u0439 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 \u043a\u043e\u0434\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u0442\u0435\u043e\u0440\u0438\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u0441\u0435 \u0433\u043b\u0430\u0434\u043a\u043e. \u0411\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c AndroidX.<\/p>\n<p>  <em>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435. \u0412 <\/em><a href=\"https:\/\/gitlab.com\/terrakok\/gitlab-client\"><em>GitFox<\/em><\/a><em> \u0432\u0441\u0435 \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u043a\u043e\u0434\u0435, \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u0441\u0435\u0445 \u043f\u043b\u044e\u0448\u0435\u043a \u0438\u0437 \u043d\u043e\u0432\u043e\u0433\u043e Android. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u0438 Android \u0438 \u043d\u0435 \u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0442\u0438\u043f Insets, \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432\u043c\u0435\u0441\u0442\u043e <\/em><code><em>view.setOnApplyWindowInsetsListener { v, insets -&gt; ... }<\/em><\/code><em> \u0432\u0435\u0440\u0441\u0438\u044e \u0438\u0437 AndroidX \u2014 <\/em><code><em>ViewCompat.setOnApplyWindowInsetsListener(view) { v, insets -&gt; ... }<\/em><\/code><em>.<\/em><\/p>\n<p>  \u0415\u0441\u0442\u044c \u044d\u043a\u0440\u0430\u043d \u0441 \u0442\u0435\u043c\u043d\u044b\u043c Navigation Bar. \u041e\u043d \u043d\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u0435\u0440\u0445\u0443 \u043d\u0438 \u043d\u0430 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u0412\u0441\u0435 \u0442\u0430\u043a, \u043a\u0430\u043a \u043c\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/3r\/wq\/sp\/3rwqspgcdlgie2m00lmedkwzgi8.png\" width=\"350\"><\/div>\n<p>  \u041d\u043e \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c. \u041a\u0430\u043a?<\/p>\n<h3>\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c<\/h3>\n<p>  \u0421\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u2014 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0442\u0435\u043c\u0435, \u0447\u0442\u043e Status Bar \u0438 Navigation Bar \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0435.<\/p>\n<pre><code class=\"kotlin\">&lt;style name=&quot;AppTheme&quot; parent=&quot;Theme.MaterialComponents.Light&quot;&gt;     &lt;item name=&quot;android:windowTranslucentStatus&quot;&gt;true&lt;\/item&gt;     &lt;item name=&quot;android:windowTranslucentNavigation&quot;&gt;true&lt;\/item&gt; &lt;\/style&gt;<\/code><\/pre>\n<p>  \u0412 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0441\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430 \u0438 \u0441\u0432\u0435\u0440\u0445\u0443, \u0438 \u0441\u043d\u0438\u0437\u0443.<\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0434\u0432\u0430 \u0444\u043b\u0430\u0433\u0430, \u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0432\u0441\u0435\u0433\u0434\u0430 3. \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0443 Navigation Bar, Status Bar \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c \u0441\u0430\u043c \u0441\u043e\u0431\u043e\u0439 \u2014 \u0442\u0430\u043a\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435. \u041c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u043d\u0435 \u043f\u0438\u0441\u0430\u0442\u044c, \u043d\u043e \u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u044e\u0431\u043b\u044e \u044f\u0441\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0438\u0448\u0443 2 \u0441\u0442\u0440\u043e\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0430 \u043d\u0435 \u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431, \u0442\u043e Navigation Bar \u0438 Status Bar \u0441\u0442\u0430\u043d\u0443\u0442 \u0447\u0435\u0440\u043d\u044b\u043c\u0438 \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0435\u043b\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430, \u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0446\u0432\u0435\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u0436\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043a\u043e\u0434\u0430. \u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<h3>\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0441 \u0446\u0432\u0435\u0442\u043e\u043c<\/h3>\n<p>  \u0425\u043e\u0440\u043e\u0448\u043e, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 Single Activity \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043e\u0434\u043d\u043e\u043c activity \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u0432\u0430 \u0444\u043b\u0430\u0433\u0430.<\/p>\n<pre><code class=\"kotlin\">rootView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or       View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION  &lt;style name=&quot;AppTheme&quot; parent=&quot;Theme.MaterialComponents.Light&quot;&gt;     &lt;!-- Set the navigation bar to 50% translucent white --&gt;     &lt;item name=&quot;android:navigationBarColor&quot;&gt;#80FFFFFF&lt;\/item&gt;  &lt;\/style&gt;<\/code><\/pre>\n<p>  \u0424\u043b\u0430\u0433\u043e\u0432 \u0442\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e, \u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438 \u0434\u0432\u0430 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0443 Navigation Bar \u0438 Status Bar. \u0426\u0432\u0435\u0442 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0442\u0435\u043c\u0443.<\/p>\n<p>  \u042d\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 Android: \u0447\u0442\u043e-\u0442\u043e \u0447\u0435\u0440\u0435\u0437 \u0442\u0435\u043c\u0443, \u0430 \u0447\u0442\u043e-\u0442\u043e \u0447\u0435\u0440\u0435\u0437 \u0444\u043b\u0430\u0433\u0438. \u041d\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u0430\u043a \u0432 \u043a\u043e\u0434\u0435, \u0442\u0430\u043a \u0438 \u0432 \u0442\u0435\u043c\u0435. \u042d\u0442\u043e \u043d\u0435 Android \u0442\u0430\u043a\u043e\u0439 \u043f\u043b\u043e\u0445\u043e\u0439, \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430 \u0441\u0442\u0430\u0440\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Android \u0444\u043b\u0430\u0433, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0432 \u0442\u0435\u043c\u0435, \u0431\u0443\u0434\u0435\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f. <code>navigationBarColor<\/code> \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u0438\u0442, \u0447\u0442\u043e \u043d\u0430 Android 5 \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435\u0442, \u043d\u043e \u0432\u0441\u0435 \u0441\u043e\u0431\u0435\u0440\u0435\u0442\u0441\u044f. \u0412 GitFox \u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0437 \u043a\u043e\u0434\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u0446\u0432\u0435\u0442 Navigation Bar.<\/p>\n<p>  \u041c\u044b \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u043c\u0430\u0445\u0438\u043d\u0430\u0446\u0438\u0438 \u2014 \u0443\u043a\u0430\u0437\u0430\u043b\u0438, \u0447\u0442\u043e Navigation Bar \u0431\u0435\u043b\u044b\u0439 \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/eo\/vs\/mz\/eovsmz1tczlc9vl_kg2yihxs0u0.png\" width=\"350\"><\/div>\n<p>  <\/p>\n<h3>\u0427\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0449\u0435, \u0447\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c insets?<\/h3>\n<p>  \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u043e.<\/p>\n<pre><code class=\"kotlin\">ViewCompat     .setOnApplyWindowInsetsListener(bottomNav) { view, insets -&gt;           view.updatePadding(bottom = insets.systemWindowInsetBottom)          insets     }<\/code><\/pre>\n<p>  \u0411\u0435\u0440\u0435\u043c \u043c\u0435\u0442\u043e\u0434 <code>setOnApplyWindowInsetsListener<\/code> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0432 \u043d\u0435\u0433\u043e <code>bottomNav<\/code>. \u0413\u043e\u0432\u043e\u0440\u0438\u043c, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0434\u0443\u0442 insets, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438 \u0441\u043d\u0438\u0437\u0443 padding, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0448\u0435\u043b \u0432 <code>systemWindowInsetBottom<\/code>. \u041c\u044b \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0431\u044b\u043b \u043f\u043e\u0434 \u043d\u0438\u043c, \u043d\u043e \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u043a\u043b\u0438\u043a\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0441\u0432\u0435\u0440\u0445\u0443. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e insets, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 View \u0432 \u043d\u0430\u0448\u0435\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0442\u043e\u0436\u0435 \u0438\u0445 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438.<\/p>\n<p>  \u0412\u0441\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u043e.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zl\/8e\/ku\/zl8ekuc_pvpc2wrmeop-khxmomg.png\" width=\"350\"><\/div>\n<p>  \u041d\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0432\u043e\u0445. \u0415\u0441\u043b\u0438 \u0432 \u0432\u0435\u0440\u0441\u0442\u043a\u0435 \u043c\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e padding \u0443 Navigation Bar \u0441\u043d\u0438\u0437\u0443, \u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0435\u0433\u043e \u0437\u0430\u0442\u0435\u0440\u043b\u0438 \u2014 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b\u0438 <code>updatePadding<\/code> \u0440\u0430\u0432\u043d\u044b\u043c insets. \u041d\u0430\u0448\u0430 \u0432\u0435\u0440\u0441\u0442\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435 \u0442\u0430\u043a, \u043a\u0430\u043a \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0432\u0435\u0440\u0441\u0442\u043a\u0438, \u043d\u0430\u0434\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0432 \u043d\u0438\u0436\u043d\u0435\u043c padding. \u041f\u043e\u0437\u0436\u0435, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0434\u0443\u0442 insets, \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"kotlin\">val bottomNavBottomPadding = bottomNav.paddingBottom ViewCompat     .setOnApplyWindowInsetsListener(bottomNav) { view, insets -&gt;                          view.updatePadding(         bottom = bottomNavBottomPadding + insets.systemWindowInsetBottom     )     Insets }<\/code><\/pre>\n<p>  \u0422\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e: \u0432\u0435\u0437\u0434\u0435 \u0432 \u043a\u043e\u0434\u0435, \u0433\u0434\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0435 insets, \u043d\u0430\u0434\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0432\u0435\u0440\u0441\u0442\u043a\u0438, \u043f\u043e\u0442\u043e\u043c \u0438\u0445 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043d\u0430 UI. \u041d\u043e \u0435\u0441\u0442\u044c Kotlin, \u0438 \u044d\u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u2014 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 (extension), \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0441\u0435 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u0430 \u043d\u0430\u0441.<\/p>\n<h3>\u0414\u043e\u0431\u0430\u0432\u0438\u043c Kotlin!<\/h3>\n<p>  \u0417\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c <code>initialPadding<\/code> \u0438 \u043e\u0442\u0434\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043d\u043e\u0432\u044b\u0435 insets (\u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0438\u043c\u0438). \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0438\u0445 \u043a\u0430\u043a-\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u043b\u043e\u0433\u0438\u043a\u0443 \u0441\u0432\u0435\u0440\u0445\u0443.<\/p>\n<pre><code class=\"kotlin\">fun View.doOnApplyWindowInsets(block: (View, WindowInsetsCompat, Rect) -&gt; WindowInsetsCompat) {          val initialPadding = recordInitialPaddingForView(this)      ViewCompat.setOnApplyWindowInsetsListener(this) { v, insets -&gt;                 block(v, insets, initialPadding)     }          requestApplyInsetsWhenAttached() }  private fun recordInitialPaddingForView(view: View) =    Rect(view.paddingLeft, view.paddingTop, view.paddingRight, view.paddingBottom)  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u043f\u0440\u043e\u0449\u0435.  bottomNav.doOnApplyWindowInsets { view, insets, padding -&gt;        view.updatePadding(         bottom = padding.bottom + insets.systemWindowInsetBottom     )      insets }<\/code><\/pre>\n<p>  \u041c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043b\u044f\u043c\u0431\u0434\u0443. \u0412 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e insets, \u043d\u043e \u0438 padding&#8217;\u0438. \u041c\u044b \u0438\u0445 \u043c\u043e\u0436\u0435\u043c \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043d\u0438\u0437\u0443, \u043d\u043e \u0438 \u0441\u0432\u0435\u0440\u0445\u0443, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e Toolbar, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 Status Bar.<\/p>\n<h3>\u041a\u043e\u0435 \u043e \u0447\u0435\u043c \u0437\u0430\u0431\u044b\u043b\u0438!<\/h3>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0432\u044b\u0437\u043e\u0432 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430.<\/p>\n<pre><code class=\"kotlin\">fun View.doOnApplyWindowInsets(block: (View, WindowInsetsCompat, Rect) -&gt; WindowInsetsCompat) {      val initialPadding = recordInitialPaddingForView(this)           ViewCompat.setOnApplyWindowInsetsListener(this) { v, insets -&gt;                 block(v, insets, initialPadding)     }            requestApplyInsetsWhenAttached()  }  private fun recordInitialPaddingForView(view: View) =       Rect(view.paddingLeft, view.paddingTop, view.paddingRight, view.paddingBottom)<\/code><\/pre>\n<p>  \u0421\u0432\u044f\u0437\u0430\u043d\u043e \u044d\u0442\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0434\u0435\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0430\u043c \u043f\u0440\u0438\u0448\u043b\u0435\u0442 insets. \u0415\u0441\u043b\u0438 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c View \u0438\u0437 \u043a\u043e\u0434\u0430 \u0438\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e <code>InsetsListener<\/code> \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435, \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0430\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u041c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 View \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u0441\u043a\u0430\u0437\u0430\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0435: \u00ab\u041f\u0440\u0438\u0448\u043b\u0438 insets, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c\u00bb. \u041c\u044b \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b\u0438 Listener \u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 <code>requestsApplyInsets<\/code>\u00bb.<\/p>\n<pre><code class=\"kotlin\">fun View.requestApplyInsetsWhenAttached() {         if (isAttachedToWindow) {                 requestApplyInsets()     } else {         addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener {                         override fun onViewAttachedToWindow(v: View) {                 v.removeOnAttachStateChangeListener(this)                 v.requestApplyInsets()                        }              override fun onViewDetachedFromWindow(v: View) = Unit         })     } }<\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u0436\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 View \u043a\u043e\u0434\u043e\u043c \u0438 \u0435\u0449\u0435 \u043d\u0435 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u0438\u043b\u0438 \u043a \u043d\u0430\u0448\u0435\u0439 \u0432\u0435\u0440\u0441\u0442\u043a\u0435, \u0442\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u043c. \u0422\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c insets.<\/p>\n<p>  \u041d\u043e \u043e\u043f\u044f\u0442\u044c \u0436\u0435, \u0435\u0441\u0442\u044c Kotlin: \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u043c \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0435 \u043d\u0430\u0434\u043e \u0434\u0443\u043c\u0430\u0442\u044c.<\/p>\n<h3>\u0414\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430 RecyclerView<\/h3>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0435 RecyclerView. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043f\u043e\u0434 Navigation Bar \u0438 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043d\u0438\u0437\u0443 \u2014 \u043d\u0435\u043a\u0440\u0430\u0441\u0438\u0432\u043e. \u041d\u0430 \u043d\u0435\u0433\u043e \u0435\u0449\u0435 \u0438 \u043a\u043b\u0438\u043a\u0430\u0442\u044c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0435\u0449\u0435 \u043d\u0435 \u043d\u043e\u0432\u0430\u044f \u043f\u0430\u043d\u0435\u043b\u044c, \u0430 \u0441\u0442\u0430\u0440\u0430\u044f, \u0431\u043e\u043b\u044c\u0448\u0430\u044f, \u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0435\u0441\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0441\u043a\u0440\u044b\u0442\u044c\u0441\u044f \u043f\u043e\u0434 \u043d\u0435\u0439. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/jc\/qa\/f7\/jcqaf7okahkrhrrnols54exqhdu.png\"><\/p>\n<p>  \u041f\u0435\u0440\u0432\u0430\u044f \u0438\u0434\u0435\u044f \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043d\u0438\u0437\u0443, \u0430 \u0432\u044b\u0441\u043e\u0442\u0443 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443 insets. \u041d\u043e \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u0441\u043e\u0442\u043d\u0435\u0439 \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u0430\u043a-\u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0430 insets, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0443\u0434\u0430 \u043d\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u044b\u0441\u043e\u0442\u0443. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e RecyclerView \u2014 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f, \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041f\u0440\u043e\u0431\u043b\u0435\u043c \u043c\u043d\u043e\u0433\u043e.<\/p>\n<p>  \u041d\u043e \u0435\u0441\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0445\u0430\u043a. \u041d\u0430 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u0435, \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e.<\/p>\n<pre><code class=\"kotlin\">&lt;androidx.recyclerview.widget.RecyclerView          android:id=&quot;@+id\/recyclerView&quot;             android:layout_width=&quot;match_parent&quot;         android:layout_height=&quot;match_parent&quot;                  android:clipToPadding=&quot;false&quot; \/&gt;  recyclerView.doOnApplyWindowInsets { view, insets, padding -&gt;         view.updatePadding(         bottom = padding.bottom + insets.systemWindowInsetBottom     ) }<\/code><\/pre>\n<p>  \u0415\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0444\u043b\u0430\u0433 \u0432 \u0432\u0435\u0440\u0441\u0442\u043a\u0435 <code>clipToPadding<\/code>. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d \u0432\u0441\u0435\u0433\u0434\u0430 \u00abtrue\u00bb. \u042d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0435 \u043d\u0430\u0434\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d padding. \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c <code>clipToPadding=&quot;false&quot;<\/code>, \u0442\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c padding \u0441\u043d\u0438\u0437\u0443, \u0432 RecyclerView \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u0430\u043a: \u0441\u043d\u0438\u0437\u0443 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d padding, \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0435\u0433\u043e, \u043f\u043e\u043a\u0430 \u043c\u044b \u043d\u0435 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u043b\u0438. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0448\u043b\u0438 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 RecyclerView \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u043e \u0442\u043e\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e.<\/p>\n<p>  \u0412\u044b\u0441\u0442\u0430\u0432\u0438\u0432 \u043e\u0434\u0438\u043d \u0442\u0430\u043a\u043e\u0439 \u0444\u043b\u0430\u0433 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 RecyclerView \u043a\u0430\u043a \u0441 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 View. \u041d\u0435 \u043d\u0430\u0434\u043e \u0434\u0443\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c padding \u0441\u043d\u0438\u0437\u0443, \u043a\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 Bottom Navigation Bar.<\/p>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b\u0438 insets, \u0431\u0443\u0434\u0442\u043e \u0438\u0445 \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438. \u041a \u043d\u0430\u043c \u043f\u0440\u0438\u0448\u043b\u0438 insets \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043c\u044b \u0441 \u043d\u0438\u043c\u0438 \u0447\u0442\u043e-\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0438, \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b\u0438 padding&#8217;\u0438 \u0438 \u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u043e\u043f\u044f\u0442\u044c \u0432\u0441\u0435 insets \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043b\u044e\u0431\u0430\u044f ViewGroup \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b\u0430 \u044d\u0442\u0438 insets \u0432\u0441\u0435\u043c View. \u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<h3>\u0411\u0430\u0433 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445<\/h3>\n<p>  \u0412\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u0432 Google Play, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 insets, \u044f \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0431\u0430\u0433. \u0421\u0435\u0439\u0447\u0430\u0441 \u043e \u043d\u0435\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443.<\/p>\n<p>  \u0415\u0441\u0442\u044c \u044d\u043a\u0440\u0430\u043d \u0441 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0435\u0439 \u0432 \u043f\u043e\u0434\u0432\u0430\u043b\u0435. \u0421\u043f\u0440\u0430\u0432\u0430 \u0442\u043e\u0442 \u0436\u0435 \u044d\u043a\u0440\u0430\u043d \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f. \u0417\u0435\u043b\u0435\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u0432\u043d\u0443\u0442\u0440\u0438 \u0443 \u043d\u0435\u0433\u043e RecyclerView.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hl\/e6\/jo\/hle6jod0ws19fydq734lqnuaixu.jpeg\"><\/p>\n<p>  \u041a\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b insets? Toolbar: \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b padding \u0441\u0432\u0435\u0440\u0445\u0443 \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0441\u043c\u0435\u0441\u0442\u0438\u043b\u0441\u044f \u043f\u043e\u0434 Status Bar. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, Bottom Navigation Bar \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b insets \u0441\u043d\u0438\u0437\u0443 \u0438 \u043f\u0440\u0438\u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f \u043d\u0430\u0434 Navigation Bar. \u0410 RecyclerView \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 insets, \u043e\u043d \u0436\u0435 \u043f\u043e\u0434 \u043d\u0438\u0445 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442, \u0435\u043c\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c insets \u2014 \u0432\u0441\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/r3\/xc\/qi\/r3xcqipovgqu-zbbxruxsy-wqvk.jpeg\"><\/p>\n<p>  \u041d\u043e \u0442\u0443\u0442 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0437\u0435\u043b\u0435\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 RecyclerView \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0433\u0434\u0435 \u0443\u0436\u0435 \u043d\u0435\u0442 Bottom Navigation Bar. \u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 RecyclerView \u0443\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c insets \u0441\u043d\u0438\u0437\u0443. \u041c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043a \u043d\u0435\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c padding \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0437-\u043f\u043e\u0434 Navigation Bar. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 RecyclerView \u0442\u043e\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 insets.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ve\/ws\/m-\/vewsm-_o80cw7mbn9tyk0bu_mfs.jpeg\"><\/p>\n<p>  \u0418\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u043d\u0430\u0448 \u044d\u043a\u0440\u0430\u043d, \u0433\u0434\u0435 \u0432\u0441\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 insets. \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d \u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b?<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/um\/vd\/x8\/umvdx8faxxk48r-inx-cxhkjqdm.jpeg\"><\/p>\n<p>  \u0412\u0438\u0434\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e: RecyclerView \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b insets \u0441\u043d\u0438\u0437\u0443, \u0445\u043e\u0442\u044f \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u0438\u0442 \u0434\u043e Navigation Bar \u2014 \u0432\u043d\u0438\u0437\u0443 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u0440\u043e\u0431\u0435\u043b. \u042f \u044d\u0442\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u043b \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445, \u043f\u0440\u0438\u0447\u0435\u043c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/i9\/3_\/ar\/i93_arxauyvbitayfpyonkxnudy.jpeg\"><\/p>\n<p>  \u0420\u0430\u0437 \u0432\u0441\u0435 \u0442\u0430\u043a, \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0432\u0441\u0435 insets, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u0417\u043d\u0430\u0447\u0438\u0442 (\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f!) \u043d\u0430\u0434\u043e \u0441\u043e\u043e\u0431\u0449\u0430\u0442\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e insets \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b: Navigation Bar \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 insets. \u0414\u043e RecyclerView \u043e\u043d\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0434\u043e\u0439\u0442\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/jf\/r2\/vi\/jfr2vi8jpsas_ptxjjqh_qhg1vk.jpeg\"><\/p>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 Bottom Navigation Bar \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <code>InsetsListener<\/code>. \u0412\u043d\u0443\u0442\u0440\u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u043c <code>bottom + insets<\/code>, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c 0.<\/p>\n<pre><code class=\"kotlin\">doOnApplyWindowInsets { view, insets, initialPadding -&gt;         view.updatePadding(         bottom = initialPadding.bottom + insets.systemWindowInsetBottom     )     insets.replaceSystemWindowInsets(         Rect(             insets.systemWindowInsetLeft,                         insets.systemWindowInsetTop,                         insets.systemWindowInsetRight,             0         )     ) }<\/code><\/pre>\n<p>  \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0435 insets, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0441\u0435 \u0441\u0442\u0430\u0440\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0440\u0430\u0432\u043d\u044b, \u0430 <code>bottom + insets<\/code> \u0440\u0430\u0432\u0435\u043d 0. \u0412\u0440\u043e\u0434\u0435 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438 \u0441\u043d\u043e\u0432\u0430 \u0435\u0440\u0443\u043d\u0434\u0430 \u2014 RecyclerView \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 insets.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/lp\/yw\/ut\/lpywut3fvlk5w-nwbd3-wnrceaw.jpeg\"><\/p>\n<p>  \u042f \u043d\u0435 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0442\u0440\u0435\u0445 View \u2014 \u044d\u0442\u043e LinearLayout. \u0412\u043d\u0443\u0442\u0440\u0438 \u043d\u0438\u0445 Toolbar, \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0441 RecyclerView \u0438 \u0432\u043d\u0438\u0437\u0443 Bottom Navigation Bar. LinearLayout \u0431\u0435\u0440\u0435\u0442 \u0441\u0432\u043e\u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043a \u043d\u0438\u043c insets.<\/p>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e Bottom Navigation Bar \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c. \u041e\u043d \u0441\u043e\u043e\u0431\u0449\u0438\u043b \u043a\u043e\u043c\u0443-\u0442\u043e, \u0447\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432\u0441\u0435 insets, \u043d\u043e \u0443\u0436\u0435 \u043f\u043e\u0437\u0434\u043d\u043e. \u0412\u0441\u0435 insets \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438\u0441\u044c \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437, RecyclerView \u0438\u0445 \u0443\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b, \u0438 \u043d\u0430\u0441 \u044d\u0442\u043e \u043d\u0435 \u0441\u043f\u0430\u0441\u0430\u0435\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/uj\/mm\/jd\/ujmmjdgumv0bl6e0ewydx7ueq5g.jpeg\"><\/p>\n<p>  \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c? LinearLayout \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u0442\u0430\u043a, \u043a\u0430\u043a \u044f \u0445\u043e\u0447\u0443, \u043e\u043d \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437 \u0438\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442, \u0430 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0438\u0436\u043d\u0438\u0439.<\/p>\n<h3>\u0412\u0441\u0435 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c<\/h3>\n<p>  \u0412\u043e \u043c\u043d\u0435 \u0441\u044b\u0433\u0440\u0430\u043b Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u2014 \u043d\u0430\u0434\u043e <strong>\u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c<\/strong>! \u0425\u043e\u0440\u043e\u0448\u043e, \u0441\u0435\u0439\u0447\u0430\u0441 <code>dispatchApplyWindowInsets<\/code> \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c <code>\u041cyLinearLayout<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u0434\u0442\u0438 \u0441\u043d\u0438\u0437\u0443 \u0432\u0432\u0435\u0440\u0445. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c insets Bottom Navigation Bar, \u0430 \u043f\u043e\u0442\u043e\u043c \u0432\u0441\u0435\u043c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c.<\/p>\n<pre><code class=\"kotlin\">@Override public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) {          insets = super.dispatchApplyWindowInsets(insets);          if (!insets.isConsumed()) {                 final int count = getChildCount();         for (int i = 0; i &lt; count; i++) {             insets = getChildAt(i).dispatchApplyWindowInsets(insets);             if (insets.isConsumed()) {                 break;             }         }     }     return insets; }<\/code><\/pre>\n<p>  \u041d\u043e \u044f \u0432\u043e\u0432\u0440\u0435\u043c\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f, \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439, \u0447\u0442\u043e \u043d\u0435 \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434.<\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435 \u0435\u0441\u0442\u044c \u0441\u043f\u0430\u0441\u0435\u043d\u0438\u0435: ViewGroup \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 insets, \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0443\u043f\u0435\u0440\u043c\u0435\u0442\u043e\u0434 \u0443 View \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u0412 \u044d\u0442\u043e\u043c \u043a\u043e\u0434\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c insets, \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0435\u0449\u0435 \u043d\u0435 \u0431\u044b\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e \u043d\u0430\u0448\u0438\u043c \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c.<\/p>\n<p>  \u042f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435. \u041e\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0432 <code>InsetsListener<\/code> \u043a \u043e\u0434\u043d\u043e\u0439 View, \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u043e\u043c\u0443 \u044d\u0442\u0438 insets \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c.<\/p>\n<pre><code class=\"kotlin\">fun View.addSystemBottomPadding(         targetView: View = this ) {     doOnApplyWindowInsets { _, insets, initialPadding -&gt;                    targetView.updatePadding(             bottom = initialPadding.bottom + insets.systemWindowInsetBottom         )         insets.replaceSystemWindowInsets(             Rect(                 insets.systemWindowInsetLeft,                 insets.systemWindowInsetTop,                      insets.systemWindowInsetRight,                 0             )         )     } }<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c <code>targetView<\/code> \u0440\u0430\u0432\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439 View, \u043f\u043e\u0432\u0435\u0440\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c <code>addSystemBottomPadding<\/code>. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0435\u0435 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c.<\/p>\n<p>  \u041d\u0430 \u043c\u043e\u0439 LinearLayout \u044f \u043f\u043e\u0432\u0435\u0441\u0438\u043b \u0442\u0430\u043a\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u043a\u0430\u043a <code>targetView<\/code> \u2014 \u044d\u0442\u043e \u043c\u043e\u0439 Bottom Navigation Bar.<\/p>\n<ul>\n<li>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043d \u0434\u0430\u0441\u0442 insets Bottom Navigation Bar.&nbsp;<\/li>\n<li>\u0422\u043e\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 insets, \u0432\u0435\u0440\u043d\u0435\u0442 \u043d\u043e\u043b\u044c bottom.<\/li>\n<li>\u0414\u0430\u043b\u044c\u0448\u0435, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043e\u043d\u0438 \u043f\u043e\u0439\u0434\u0443\u0442 \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437: Toolbar, \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0441 RecyclerView.<\/li>\n<li>\u041f\u043e\u0442\u043e\u043c, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043e\u043d \u043e\u043f\u044f\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442 insets Bottom Navigation Bar. \u041d\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0432\u0430\u0436\u043d\u043e, \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438 \u0442\u0430\u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/li>\n<\/ul>\n<p>  \u042f \u0434\u043e\u0431\u0438\u043b\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0433\u043e, \u0447\u0435\u0433\u043e \u0445\u043e\u0442\u0435\u043b: \u0432\u0441\u0435 insets \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0442\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0443\u0436\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/s3\/b0\/nc\/s3b0nc07bayude3nvrvevkxnwyc.jpeg\"><\/p>\n<h3>\u0412\u0430\u0436\u043d\u043e\u0435<\/h3>\n<p>  \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0436\u043d\u044b\u0445 \u0432\u0435\u0449\u0435\u0439, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c.<\/p>\n<p>  <strong>\u041a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 UI \u043f\u043e\u0432\u0435\u0440\u0445 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. <\/strong>\u041d\u0435 \u043d\u0430\u0434\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f \u043a \u043d\u0435\u0439 \u043f\u043e-\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u043c\u0443. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 Google-\u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443, \u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e Layout \u0441 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0436\u0438\u043c\u0430\u0442\u044c. \u0415\u0441\u0442\u044c \u0441\u043e\u0442\u043d\u0438 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u044d\u0442\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b: \u043f\u043e\u0438\u0441\u043a \u0433\u0438\u0444\u043e\u043a \u0438 \u043c\u0435\u043c\u043e\u0432, \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u043e\u0439 \u0432\u0432\u043e\u0434, \u0441\u043c\u0435\u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043e\u0442 10 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0432 \u0432\u044b\u0441\u043e\u0442\u0443 \u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u044d\u043a\u0440\u0430\u043d\u0430. \u041d\u0435 \u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043e \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0435, \u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 insets.<\/p>\n<p>  <strong>Navigation Drawer \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u0436\u0435\u0441\u0442\u0430\u043c\u0438<\/strong>. \u041d\u0430 Google IO \u043e\u0431\u0435\u0449\u0430\u043b\u0438, \u0447\u0442\u043e \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u041d\u043e \u0432 Android 10 Navigation Drawer \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442. \u0415\u0441\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u0434\u043e Android 10 \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u0436\u0435\u0441\u0442\u0430\u043c\u0438, Navigation Drawer \u043e\u0442\u0432\u0430\u043b\u0438\u0442\u0441\u044f. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u043a\u043b\u0438\u043a\u0430\u0442\u044c \u043d\u0430 \u043c\u0435\u043d\u044e \u0433\u0430\u043c\u0431\u0443\u0440\u0433\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f, \u043b\u0438\u0431\u043e \u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0435\u0433\u043e \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c.<\/p>\n<p>  \u0412 \u043f\u0440\u0435-\u0430\u043b\u044c\u0444\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 Android Navigation Drawer \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u044f \u043d\u0435 \u0440\u0438\u0441\u043a\u043d\u0443\u043b \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u2014 \u044d\u0442\u043e \u0436\u0435 \u043f\u0440\u0435-\u0430\u043b\u044c\u0444\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e GitFox, \u0442\u0430\u043c \u0435\u0441\u0442\u044c Navigation Drawer, \u043d\u043e \u0435\u0433\u043e \u043d\u0435 \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0439\u0434\u0435\u0442 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430, \u044f \u043e\u0431\u043d\u043e\u0432\u043b\u044e \u0438 \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<h2>\u0427\u0435\u043a-\u043b\u0438\u0441\u0442 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u043a Android 10<\/h2>\n<p>  <strong>\u0421\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c Navigation Bar \u0438 Status Bar \u0441 \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/strong>. Google \u0441\u0442\u0440\u043e\u0433\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 Navigation Bar. \u0414\u043b\u044f \u043d\u0430\u0441 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0430 \u0432\u044b \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u043b\u0438 \u2014 \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 Android 10. \u0412\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0445 \u0432 \u0442\u0435\u043c\u0435, \u043a\u0430\u043a translucent, \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0432\u0435\u0440\u0441\u0442\u043a\u0443, \u0433\u0434\u0435 \u043e\u043d\u0430 \u0441\u043b\u043e\u043c\u0430\u043b\u0430\u0441\u044c.<\/p>\n<p>  <strong>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430 Kotlin<\/strong> \u2014 \u0441 \u043d\u0438\u043c\u0438 \u043f\u0440\u043e\u0449\u0435.<\/p>\n<p>  <strong>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043a\u043e \u0432\u0441\u0435\u043c Toolbar \u0441\u0432\u0435\u0440\u0445\u0443 padding.<\/strong> Toolbars \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0430\u0432\u0435\u0440\u0445\u0443, \u0442\u0430\u043a \u0438 \u043d\u0430\u0434\u043e \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0442\u044c.<\/p>\n<p>  <strong>\u0423 \u0432\u0441\u0435\u0445 RecyclerView \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 padding \u0441\u043d\u0438\u0437\u0443<\/strong> \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 <code>clipToPadding=&quot;false&quot;<\/code>.<\/p>\n<p>  <strong>\u0412\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u043f\u0440\u043e \u0432\u0441\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 \u043a\u0440\u0430\u044f\u0445 \u044d\u043a\u0440\u0430\u043d\u0430<\/strong><strong>(FAB)<\/strong>. FAB&#8217;\u044b, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043e\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u043d\u0435 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0432\u044b \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0435.<\/p>\n<p>  <strong>\u041d\u0435 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0439\u0442\u0435 \u0438 \u043d\u0435 \u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 LinearLayout<\/strong> \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043a\u0435\u0439\u0441\u043e\u0432. \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0442\u0440\u044e\u043a, \u043a\u0430\u043a \u0432 GitFox, \u0438\u043b\u0438 \u0432\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u043c\u043e\u0435 \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0432 \u043f\u043e\u043c\u043e\u0449\u044c.<\/p>\n<p>  <strong>\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0436\u0435\u0441\u0442\u044b \u043d\u0430 \u043a\u0440\u0430\u044f\u0445 \u044d\u043a\u0440\u0430\u043d\u0430 \u0443 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 View<\/strong>. Navigation Drawer \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442. \u041d\u043e \u043d\u0435 \u0442\u0430\u043a \u0441\u043b\u043e\u0436\u043d\u043e \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438, \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c insets \u0434\u043b\u044f \u0436\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0441 Navigation Drawer. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u044b \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a, \u0433\u0434\u0435 \u0436\u0435\u0441\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442.<\/p>\n<p>  <strong>\u041f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430 \u0432 ViewPager \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u0441 \u043a\u0440\u0430\u044e, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0446\u0435\u043d\u0442\u0440\u0430 \u0432\u043f\u0440\u0430\u0432\u043e-\u0432\u043b\u0435\u0432\u043e<\/strong>. Google \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e. \u0415\u0441\u043b\u0438 \u0442\u044f\u043d\u0443\u0442\u044c ViewPager \u0441 \u043a\u0440\u0430\u044f, \u0442\u043e \u044d\u0442\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u00ab\u041d\u0430\u0437\u0430\u0434\u00bb.<\/p>\n<p>  <strong>\u0412 \u043d\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441\u0440\u0430\u0437\u0443 \u0432\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435 \u0432\u0441\u0435 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438<\/strong>. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u0430\u043c, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 Navigation Bar \u0438 Status Bar. \u0412\u0435\u0441\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u2014 \u044d\u0442\u043e \u0432\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0410 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0443\u0436\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0441 \u0442\u0435\u043c, \u0433\u0434\u0435 \u0438 \u0447\u0442\u043e \u043f\u043e\u0434\u043d\u044f\u0442\u044c.<\/p>\n<p>  <b>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438:<\/b><\/p>\n<ul>\n<li>@rmr_spb \u0432 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c\u0435 \u2014 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043c\u0438\u0442\u0430\u043f\u043e\u0432 Redmadrobot SPb.<\/li>\n<li>\u0412\u0435\u0441\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438 \u0434\u0430\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 <a href=\"https:\/\/gitlab.com\/terrakok\/gitlab-client\">GitFox<\/a>. \u0422\u0430\u043c \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430 Android 10, \u0433\u0434\u0435 \u043f\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a \u044f \u0434\u043e\u0448\u0435\u043b \u0434\u043e \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u0438 \u043a\u0430\u043a \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043b \u043d\u043e\u0432\u044b\u0439 Android.<\/li>\n<li><a href=\"https:\/\/github.com\/chrisbanes\/insetter\">\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Insetter<\/a> \u041a\u0440\u0438\u0441\u0430 \u0411\u0435\u0439\u043d\u0430. \u041e\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 5-6 extensions, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b. \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u0432\u043e\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u043d\u0430 \u043f\u0435\u0440\u0435\u0435\u0434\u0435\u0442 \u0432 Android Jetpack. \u042f \u0438\u0445 \u0440\u0430\u0437\u0432\u0438\u043b \u0443 \u0441\u0435\u0431\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0438, \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043e\u043d\u0438 \u0441\u0442\u0430\u043b\u0438 \u043b\u0443\u0447\u0448\u0435.<\/li>\n<li><a href=\"https:\/\/medium.com\/androiddevelopers\/windowinsets-listeners-to-layouts-8f9ccc8fa4d1\">\u0421\u0442\u0430\u0442\u044c\u044f<\/a> \u041a\u0440\u0438\u0441\u0430 \u0411\u0435\u0439\u043d\u0430.<\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/funcorp\/blog\/419109\/\">\u0421\u0442\u0430\u0442\u044c\u044f<\/a> \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 FunCorn, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0438, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0432\u044b\u0440\u0435\u0437\u0430\u043c\u0438 \u0438 \u0447\u0435\u043b\u043a\u0430\u043c\u0438.<\/li>\n<li>\u0421\u0442\u0430\u0442\u044c\u044f \u00ab<a href=\"https:\/\/medium.com\/androiddevelopers\/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec\">Why would I want to fitsSystemWindows?<\/a>\u00bb \u042f\u043d\u0430 \u041b\u044d\u0439\u043a\u0430.<\/li>\n<\/ul>\n<p>  <\/p>\n<blockquote><p>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d \u0426\u0445\u043e\u0432\u0440\u0435\u0431\u043e\u0432 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u043a\u0435\u0440 AppConf, \u043d\u0430 <a href=\"https:\/\/www.youtube.com\/c\/MobileChannelRussia\">youtube-\u043a\u0430\u043d\u0430\u043b\u0435<\/a> \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u0432. \u041d\u043e \u0432 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u044b, \u0430 \u0432\u0441\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435. \u0424\u0438\u0448\u043a\u0438 \u043e\u0441\u0435\u043d\u043d\u0435\u0439 <a href=\"https:\/\/appsconf.ru\/moscow\/2020\">AppsConf<\/a> \u0441\u0435\u0439\u0447\u0430\u0441 \u043a\u0430\u043a \u0440\u0430\u0437 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e \u043d\u0438\u0445 \u0431\u0443\u0434\u0435\u0442 \u0443\u0436\u0435 \u043d\u043e\u0432\u044b\u0439 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u0438\u0442\u0435\u0442\u0430 \u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u0421\u0443\u0432\u043e\u0440\u043e\u0432. \u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 <a href=\"http:\/\/eepurl.com\/bOajmn\">\u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0443<\/a>, <a href=\"https:\/\/t.me\/appsconf\">\u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c<\/a>, stay tuned!<\/p><\/blockquote>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/488196\/\"> https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/488196\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/488196\/\">Android Q \u2014 \u044d\u0442\u043e \u0434\u0435\u0441\u044f\u0442\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Android \u0441 29-\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c API. \u041e\u0434\u043d\u0430 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0438\u0434\u0435\u0439 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u044d\u0442\u043e \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f edge-to-edge, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0432\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d, \u043e\u0442 \u043d\u0438\u0436\u043d\u0435\u0439 \u0440\u0430\u043c\u043a\u0438 \u0434\u043e \u0432\u0435\u0440\u0445\u043d\u0435\u0439. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e Status Bar \u0438 Navigation Bar \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c\u0438. \u041d\u043e, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b, \u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 UI \u043d\u0435\u0442 \u2014 \u043e\u043d \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e insets.<\/p>\n<p>  \u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438\u0437\u0431\u0435\u0433\u0430\u044e\u0442 insets, \u043e\u043d\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0443 \u043d\u0438\u0445 \u0441\u0442\u0440\u0430\u0445. \u041d\u043e \u0432 Android Q \u043e\u0431\u043e\u0439\u0442\u0438 insets \u043d\u0435 \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u2014 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0438\u0445 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0432 insets \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e: \u043e\u043d\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442, \u043a\u0430\u043a\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0442\u0441\u044f \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043d\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432\u0430\u043b \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c UI. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 insets \u0438 \u0447\u0435\u043c \u043e\u043d\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b, \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 <strong>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d \u0426\u0445\u043e\u0432\u0440\u0435\u0431\u043e\u0432<\/strong>.<\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.2493%;\"><iframe src=\"https:\/\/www.youtube.com\/embed\/6Djql74drwk?rel=0&amp;showinfo=1&amp;hl=en-US\" style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" allowfullscreen scrolling=\"no\"><\/iframe><\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-298626","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/298626","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=298626"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/298626\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=298626"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=298626"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=298626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}