gpt4 book ai didi

Android OnSystemUiVisibilityChangeListener 仅在纵向模式下触发

转载 作者:行者123 更新时间:2023-11-30 02:38:27 26 4
gpt4 key购买 nike

我试图在我的全屏 Android 应用程序中隐藏导航栏作为 this document描述。这有效,但仅适用于纵向(*)。如果应用旋转到横向,OnSystemUiVisibilityChangeListener 将停止触发。如果应用随后旋转回纵向,OnSystemUiVisibilityChangeListener 将再次开始触发。我尝试从 onCreate()onResume() 调用这段代码,效果是一样的。

final View decor=getWindow().getDecorView();
decor.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() {
public void onSystemUiVisibilityChange(int visibility) {
android.util.Log.d("d", "onSystemUiVisibilityChange");
new Handler().postDelayed(new Runnable() {
public void run(){
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
}, 1500);
}
});
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

(*) 无论应用以何种方向启动,它都能正常工作——如果应用以横向启动,则监听器仅在横向启动,如果应用以纵向启动,则监听器仅在横向启动。

最佳答案

方向改变后尝试重新设置。在 Activity 下的 list 文件中使用 android:configChanges="orientation"。

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.my_layout);
final View decor=getWindow().getDecorView();
decor.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() {
public void onSystemUiVisibilityChange(int visibility) {
android.util.Log.d("d", "onSystemUiVisibilityChange");
new Handler().postDelayed(new Runnable() {
public void run(){
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
}, 1500);
}
});
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

// and here comes the other initializations you have done in the onCreate method.
}

关于Android OnSystemUiVisibilityChangeListener 仅在纵向模式下触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26150072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com