【问题标题】:Spinner breaking fullscreen/immersive flags微调器打破全屏/沉浸式标志
【发布时间】:2016-05-24 06:51:32
【问题描述】:

在我的应用中,我有全屏模式要求,以完成此操作

我已经设置了

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

 requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

在我的活动中。

但是当我点击我的微调器时,底部的导航栏变得可见

我也尝试过使用 FullscreenActivity,

Android Studio >选择“新建”>选择“活动”>“全屏 活动”。

【问题讨论】:

  • 我也遇到了同样的问题,你找到解决办法了吗?
  • @MattPennington 不,您可以在此处code.google.com/p/android/issues/detail?id=68031 关注此问题的更新。这是一个已知的错误。
  • 没有这方面的消息?

标签: android


【解决方案1】:

所以最后,kakajika 找到了这个问题的解决方案,并由 Quinn in this answer 发布:

import android.widget.ListPopupWindow;
import android.widget.PopupWindow;
import android.widget.Spinner;

public static void avoidSpinnerDropdownFocus(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();
    }
}

linked Gits 上的解决方案也是用 Kotlin 编写的。

猜你喜欢
  • 2014-03-06
  • 2016-08-25
  • 2014-03-07
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-30
  • 1970-01-01
相关资源
最近更新 更多