我正在使用Playerview并尝试显示/隐藏系统栏,但当它们隐藏或显示时,整个屏幕会上下移动。我理解这是因为每次隐藏/显示条时,屏幕都会调整大小。我希望布局停止调整大小,这样屏幕就不会移动。以下代码在横向模式下运行良好,但仅在纵向模式下出现问题。
private boolean hasfocused;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
setContentView(R.layout.activity_player_layout);
//
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
getSupportActionBar().show();
playerView.showController();
} else {
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE);
getSupportActionBar().hide();
playerView.hideController();
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
if (hasfocused) {
onWindowFocusChanged(true);
hasfocused = false;
} else {
onWindowFocusChanged(false);
hasfocused = true;
}
}
且XML为
version="1.0" encoding="utf-8"?>
为防止视图移动/布局调整大小,支持状态栏和导航-获取活动的当前窗口,并在onCreate()
中设置下方标志。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
并且在不更改onWindowFocusChanged
或xml
文件的情况下,您可以检查程序。我认为您应该在onSingleTapUp(MotionEvent e)
的if..else
中使用另一个boolean
,而不是使用myToolbar.isShown()
。这是在焦点获得或失去时制造冲突。
因此在您的活动中使用布尔值private boolean hasfocused;
。
然后更改onSingleTapUp
如下-
@Override
public boolean onSingleTapUp(MotionEvent e) {
if (hasfocused) {
onWindowFocusChanged(true);
hasfocused = false;
} else {
onWindowFocusChanged(false);
hasfocused = true;
}
return true;
}
如果需要触发上述方法,则onDown
和onSingleTapConfirmed
也返回TRUE。
@Override
public boolean onDown(MotionEvent event) {
return true;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
return true;
}
这篇关于阻止在Android中调整布局大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持吉威生活!
[英文标题]Prevent the layout from resizing in android
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。