Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

全屏时弹出basePop封装的会强制显示虚拟按键,直接用popWindow不会 #59

Closed
Chihiro23333 opened this issue Feb 27, 2018 · 14 comments

Comments

@Chihiro23333
Copy link

该问题是怎么引起的?

视频全屏横屏播放虚拟键隐藏,弹出basePop强制弹出了三大金刚键

重现步骤

报错信息/系统版本

建议或优化点

@razerdp
Copy link
Owner

razerdp commented Feb 27, 2018

收到,大概是因为适配了systembar的问题,这个下一版本修复

@razerdp
Copy link
Owner

razerdp commented Apr 9, 2018

你好,已经发布了预览版本,请更新到Candy版本。

@razerdp
Copy link
Owner

razerdp commented Apr 9, 2018

ps,Candy版本并不是稳定版,问题反馈收集后修正并验证过才发布的正式版,如果您使用过程中发现有无法接受的问题,可以先更换到上一个正式版使用并反馈到github issue

@littleylv
Copy link

@razerdp Candy:2.0.0-alpha2 仍然存在问题

我的MainActivity默认是全屏的(没有状态栏和虚拟按键),但showPopupWindow时候会显示虚拟按键。

MainActivity.java:

    @Override

    protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            requestWindowFeature(Window.FEATURE_NO_TITLE);

            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

            setContentView(R.layout.activity_main);

            ........
    }
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
            super.onWindowFocusChanged(hasFocus);
            if (hasFocus) {
                // Standard Android full-screen functionality.
                getWindow()
                        .getDecorView()
                        .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_STICKY);
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
            }
    }

@Chihiro23333
Copy link
Author

我发现好像是因为popwindow获取焦点的问题 焦点设为false就好了

@littleylv
Copy link

@razerdp 您好,Candy:2.0.1-alpha 1 还是存在这个问题。这个可以解决吗?

@razerdp
Copy link
Owner

razerdp commented Sep 5, 2018

@littleylv 0.0还是存在吗,,,好神奇- -我上次测试的时候已经不存在了。。。我明天看看

@littleylv
Copy link

@razerdp 我建了个demo,你可以试一下:https://github.com/littleylv/BasePopupDemo

我使用的是 Google Pixel + 8.1.0

@razerdp
Copy link
Owner

razerdp commented Sep 6, 2018

@littleylv

我尝试修复了一下,更新到了 2.0.1-alpha2。

本次更新主要改动如下

1 - 判断当前activity是否全屏
2 - 如果是全屏,则控制PopupWindow的window也是全屏显示(隐藏状态栏)
3 - 增加快速构建工具以及全屏Activity测试

说实话,测试是可以完成全屏,但是我发现了一个问题,就是不知道为何,导航栏的动作是先显示出来然后才隐藏掉。

其中实现隐藏的代码:PopupCompatManager

测试Activity:DemoFullScreenActivity

如果你有比较好的解决方案,希望可以在这里一起讨论一下

@razerdp
Copy link
Owner

razerdp commented Sep 6, 2018

@Chihiro23333

你所说的焦点其实是这样的,activity的fullscreen在焦点变化的时候,flag就被清除了,所以有时候fullscreen的flag在点击屏幕时也会出现金钢键出现的问题

而popup是一个独立的window,他需要特别的照顾一下,以应对三大金刚键

@razerdp
Copy link
Owner

razerdp commented Dec 18, 2018

@littleylv 按照您的demo,我写了basepopup版本和系统原生的用法,发现两者表现都一样的。。。

@razerdp
Copy link
Owner

razerdp commented Jan 21, 2019

@littleylv
@Chihiro23333

candy 2.1.8-beta1 修复了这个问题,目前还在测试中,如果出现了问题请务必反馈一下哈~

@lly7690
Copy link

lly7690 commented Jan 22, 2019

@razerdp 弹出POPUPWINDOW的时候还是会弹出导航栏(虚拟键),是要做什么设置吗?

@razerdp
Copy link
Owner

razerdp commented Jan 22, 2019

@lly7690 不会了吧,我这里已经测试过了。。。。你的版本以及你的代码,单独提个issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants