我的Android应用程序以以下布局开头:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click"/>
</RelativeLayout>
活动的状态栏有偏移量。
我想通过单击按钮在运行时删除此偏移量。通过单击按钮,我执行以下操作,但它不起作用,没有任何反应:
findViewById(R.id.root).setFitsSystemWindows(false);
我该怎么做?
答案 0 :(得分:13)
我一直在处理这个问题,只找到了这个悬而未决的问题。
最后,我找到了解决方案:
View view = findViewById(R.id.root);
view.setFitsSystemWindows(false);
view.setPadding(0, 0, 0, 0);
将fitsSystemWindows设置为true会修改填充。显然禁用fitsSystemWindows会保留填充集。
答案 1 :(得分:0)
试试这个
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow(); // in Activity's onCreate() for instance
w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
设置状态标志以删除状态栏偏移,使用导航栏删除软按钮。