android inset 标签,android – 有几个WindowInsets?
WindowInsets描述了一組窗口內(nèi)容的插圖.
換句話說(shuō),WindowInsets有一個(gè)可用的應(yīng)用程序區(qū)域(并有其他信息,如isRound).可用區(qū)域不包括StatusBar和NavigationBar的Rect.
如果您只想知道StatusBar和NavigationBar的高度,請(qǐng)查看this.
你可以得到如下的WindowInsets.
以下示例使用WindowInsetsCompat兼容.
在你的style.xml中:
...
true
true
在你的AndroidManifest.xml中
...
android:theme="@style/AppTheme">
...
在你的布局中xml:(fitsSystemWindows應(yīng)設(shè)置為獲取WindowInsets.)
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
在你的活動(dòng)(或任何地方):
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View container = findViewById(R.id.container);
ViewCompat.setOnApplyWindowInsetsListener(container, new OnApplyWindowInsetsListener() {
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
//you can do something with insets.
int statusBar = insets.getSystemWindowInsetTop(); //this is height of statusbar
int navigationBar = insets.getStableInsetBottom(); //this is height of navigationbar
Log.d("MainActivity", String.format("%s %s", statusBar, navigationBar));
ViewCompat.onApplyWindowInsets(v, insets);
return insets;
}
});
}
}
WindowInsets是這樣的:
總結(jié)
以上是生活随笔為你收集整理的android inset 标签,android – 有几个WindowInsets?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python安装lap_一个python
- 下一篇: 西浦与杭电计算机选哪个,四邮四电究竟谁强