gpt4 book ai didi

android - 如何在 Spinner 中保持沉浸式模式?

转载 作者:行者123 更新时间:2023-12-03 14:33:52 41 4
gpt4 key购买 nike

我使用沉浸式粘性模式来隐藏导航栏和操作栏:

@TargetApi(19)
private void setImmersiveMode() {
if (Build.VERSION.SDK_INT >= 19) {
View decorView = getWindow().getDecorView();
int uiOptions = getImmersiveUiOptions(decorView);
decorView.setSystemUiVisibility(uiOptions);
ActionBar actionBar = getActionBar();
if (null!=actionBar) {
actionBar.hide();
}
}
}

当一个 Spinner被感动, navigationBar显示并禁用沉浸式模式。

This solution适用于对话框:
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
dialog.show();
dialog.getWindow().getDecorView().setSystemUiVisibility(
context.getWindow().getDecorView().getSystemUiVisibility());
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);

但是 Spinner没有 show()我可以覆盖的方法。

如何防止在触摸 Spinner 时显示系统 UI?

编辑 :这个问题是关于隐藏导航栏(BackButton、HomeButton 和RecentTasksButton)。我已经在使用 FLAG_FULLSCREEN
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);   

最佳答案

我知道这已经很晚了,但我终于找到了解决此问题的方法 here :

在使用它之前,只需在你的微调器上调用它:

import android.widget.PopupWindow
import android.widget.Spinner

fun Spinner.avoidDropdownFocus() {
try {
val isAppCompat = this is androidx.appcompat.widget.AppCompatSpinner
val spinnerClass = if (isAppCompat) androidx.appcompat.widget.AppCompatSpinner::class.java else Spinner::class.java
val popupWindowClass = if (isAppCompat) androidx.appcompat.widget.ListPopupWindow::class.java else android.widget.ListPopupWindow::class.java

val listPopup = spinnerClass
.getDeclaredField("mPopup")
.apply { isAccessible = true }
.get(this)
if (popupWindowClass.isInstance(listPopup)) {
val popup = popupWindowClass
.getDeclaredField("mPopup")
.apply { isAccessible = true }
.get(listPopup)
if (popup is PopupWindow) {
popup.isFocusable = false
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}

关于android - 如何在 Spinner 中保持沉浸式模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49534072/

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