java - 按下微调器下拉菜单时,禁用全屏模式
问题描述
我正在将 Java 用于 android 项目,因为我必须在全屏模式下使用应用程序,当我按下下拉菜单(微调器)时,全屏模式被禁用。你有什么办法可以防止这种情况发生吗?即使我按下下拉菜单,我也不想退出全屏。我已经经历了所有的选择,包括
//method for full screen
private void hideSystemUI() {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE
| 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);
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(Main_Menu.this,
R.layout.custom_spinner, paths);
adapter.setDropDownViewResource(R.layout.custom_spinner_drop_down_item);
btnlanguage.setAdapter(adapter);
btnlanguage.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// Toast.makeText(Main_Menu.this, urlinformation.HomeURL(btnlanguage.getSelectedItem().toString(), slug), Toast.LENGTH_LONG).show();
mywebview.loadUrl(urlinformation.HomeURL(btnlanguage.getSelectedItem().toString(), slug));
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
}
});
解决方案
这是解决方案,将此方法放入您的代码中,并在向微调器添加数据后调用 onCreate 方法。
public static void apply(Spinner spinner) {
try {
Field listPopupField = Spinner.class.getDeclaredField("mPopup");
listPopupField.setAccessible(true);
Object listPopup = listPopupField.get(spinner);
if (listPopup instanceof ListPopupWindow) {
Field popupField = ListPopupWindow.class.getDeclaredField("mPopup");
popupField.setAccessible(true);
Object popup = popupField.get((ListPopupWindow) listPopup);
if (popup instanceof PopupWindow) {
((PopupWindow) popup).setFocusable(false);
}
}
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
推荐阅读
- python - 堆叠分类器:使用自定义分类器返回错误
- python - Python pandas数据框:计算列中大于或小于阈值的元素数量
- github - 有没有办法或 github api 来准确检查何时在给定分支上执行硬重置
- java - 如何在 Java swing 中跟踪鼠标点击作为输入
- c - 使用 C 中的宏控制 AVR 芯片中某个端口上的单个位
- reactjs - 将数据库中的数据显示到 MaterialTable React JS
- javascript - 默认禁用谷歌浏览器扩展
- python - 如何阻止python在特定虚拟环境中安装模块并全局安装?
- c - 后缀表达式 - 检查空格
- python - 我无法使用自定义模型管理器访问模型的属性