Git Product home page Git Product logo

Comments (17)

boboqun avatar boboqun commented on June 2, 2024 1

@boboqun 您好,请问这个问题有解决方案了么?我在我的项目里也发现了这个问题,同样没有在Demo里复现。降到0.0.49.beta9版本就不会有这个问题,升到0.0.49.beta13版本就会出现。

暂时没有解决 暂时用的beta11 目前可用。

from dialogx.

kongzue avatar kongzue commented on June 2, 2024 1

@Matcha-xiaobin 关注一下此问题

from dialogx.

Matcha-xiaobin avatar Matcha-xiaobin commented on June 2, 2024 1

@Matcha-xiaobin 关注一下此问题

好的

from dialogx.

kongzue avatar kongzue commented on June 2, 2024

很抱歉未能复现你所描述的问题,相关测试如下:
Screenshot_20230907_203052

有一种特例的情况是,当菜单数量较多时(高度超出屏幕),会采用滑动伸缩展开菜单显示,在展开前本身就是会显示在导航栏背后的,例如:
Snipaste_2023-09-07_20-32-26

from dialogx.

boboqun avatar boboqun commented on June 2, 2024

Snipaste_2023-09-08_14-49-16
image

image 实在抱歉,我没能在demo里复现这个问题。只在我的app里复现了。这个多选框的确定被虚拟键挡住了。FullScreenDialog里套customFragment底部的布局也会被挡住。我试了0.0.49.beta11就不挡住,0.0.49.beta12和0.0.49.beta13目前最新的,都会被挡住。不清楚问题点在哪呢,我试了换apptheme。 我再继续试着在demo里复现。打扰您了。

from dialogx.

kongzue avatar kongzue commented on June 2, 2024

不排除是沉浸式适配相关问题,检查一下这块是否有处理,可以参考 wiki-常见问题 的内容

from dialogx.

wxw-9527 avatar wxw-9527 commented on June 2, 2024

@boboqun 您好,请问这个问题有解决方案了么?我在我的项目里也发现了这个问题,同样没有在Demo里复现。降到0.0.49.beta9版本就不会有这个问题,升到0.0.49.beta13版本就会出现。

from dialogx.

wxw-9527 avatar wxw-9527 commented on June 2, 2024

那我可以先把beta9更新到beta11版本了。话说我根据demo尝试了好多方案,都没在自己的项目修复这个问题T_T。。。偏偏demo就显示正常

from dialogx.

kongzue avatar kongzue commented on June 2, 2024

尝试用Layout Inspector探一下布局属性吧,我也没办法排查原因

from dialogx.

wxw-9527 avatar wxw-9527 commented on June 2, 2024

0.0.49.beta17版本,在AppCompatActivity试验场类中调用底部弹窗,用AndroidStudio创建的模拟器可以复现。模拟器用API30版本。
image
image

from dialogx.

wxw-9527 avatar wxw-9527 commented on June 2, 2024

OPPO K1
Android版本:10
ColorOS版本:V7.1

0.0.49.beta11-显示正常
0.0.49.beta12-弹窗底部被虚拟按钮覆盖
0.0.49.beta13-弹窗底部被虚拟按钮覆盖
0.0.49.beta14-弹窗底部被虚拟按钮覆盖
0.0.49.beta15-弹窗底部被虚拟按钮覆盖
0.0.49.beta16-显示正常
0.0.49.beta17-显示正常

Pixel XL API 30

0.0.49.beta11-显示正常
0.0.49.beta12-弹窗底部被虚拟按钮覆盖
0.0.49.beta13-弹窗底部被虚拟按钮覆盖
0.0.49.beta14-弹窗底部被虚拟按钮覆盖
0.0.49.beta15-显示正常
0.0.49.beta16-弹窗底部被虚拟按钮覆盖
0.0.49.beta17-弹窗底部被虚拟按钮覆盖

我用以上两款测试机测试了11-17的全部版本,不知道这个测试结果能不能帮助定位问题,这些都可以在Demo里的AppCompatActivityTest类中复现

from dialogx.

Matcha-xiaobin avatar Matcha-xiaobin commented on June 2, 2024

OPPO K1
Android版本:10
ColorOS版本:V7.1

0.0.49.beta11-显示正常
0.0.49.beta12-弹窗底部被虚拟按钮覆盖
0.0.49.beta13-弹窗底部被虚拟按钮覆盖
0.0.49.beta14-弹窗底部被虚拟按钮覆盖
0.0.49.beta15-弹窗底部被虚拟按钮覆盖
0.0.49.beta16-显示正常
0.0.49.beta17-显示正常

Pixel XL API 30

0.0.49.beta11-显示正常
0.0.49.beta12-弹窗底部被虚拟按钮覆盖
0.0.49.beta13-弹窗底部被虚拟按钮覆盖
0.0.49.beta14-弹窗底部被虚拟按钮覆盖
0.0.49.beta15-显示正常
0.0.49.beta16-弹窗底部被虚拟按钮覆盖
0.0.49.beta17-弹窗底部被虚拟按钮覆盖

我用以上两款测试机测试了11-17的全部版本,不知道这个测试结果能不能帮助定位问题,这些都可以在Demo里的AppCompatActivityTest类中复现

问题是由于沉浸式适配导致的

如果你项目做了沉浸式处理,应该不会出现此问题

你可以尝试在你的demo中的oncreate加入这行代码开启沉浸式支持:
WindowCompat.setDecorFitsSystemWindows(window, false)
上面这个找不到WindowCompat类的话,api 30+可选使用这行:
window.setDecorFitsSystemWindows(false)
api 30以下使用下面这段
final int decorFitsFlags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;

        final View decorView = window.getDecorView();
        final int sysUiVis = decorView.getSystemUiVisibility();
        decorView.setSystemUiVisibility(decorFitsSystemWindows
                ? sysUiVis & ~decorFitsFlags
                : sysUiVis | decorFitsFlags);

请注意,开启沉浸式支持后,你可能需要修改你每一个界面的布局,否则,你的界面上的内容可能会被系统栏遮挡。

尝试后依然不行,请回复我。

from dialogx.

Matcha-xiaobin avatar Matcha-xiaobin commented on June 2, 2024

@kongzue 我提交了补丁,请测试下能否解决这个问题

from dialogx.

wxw-9527 avatar wxw-9527 commented on June 2, 2024

OPPO K1
Android版本:10
ColorOS版本:V7.1

0.0.49.beta11-显示正常
0.0.49.beta12-弹窗底部被虚拟按钮覆盖
0.0.49.beta13-弹窗底部被虚拟按钮覆盖
0.0.49.beta14-弹窗底部被虚拟按钮覆盖
0.0.49.beta15-弹窗底部被虚拟按钮覆盖
0.0.49.beta16-显示正常
0.0.49.beta17-显示正常

Pixel XL API 30

0.0.49.beta11-显示正常
0.0.49.beta12-弹窗底部被虚拟按钮覆盖
0.0.49.beta13-弹窗底部被虚拟按钮覆盖
0.0.49.beta14-弹窗底部被虚拟按钮覆盖
0.0.49.beta15-显示正常
0.0.49.beta16-弹窗底部被虚拟按钮覆盖
0.0.49.beta17-弹窗底部被虚拟按钮覆盖

我用以上两款测试机测试了11-17的全部版本,不知道这个测试结果能不能帮助定位问题,这些都可以在Demo里的AppCompatActivityTest类中复现

问题是由于沉浸式适配导致的

如果你项目做了沉浸式处理,应该不会出现此问题

你可以尝试在你的demo中的oncreate加入这行代码开启沉浸式支持: WindowCompat.setDecorFitsSystemWindows(window, false) 上面这个找不到WindowCompat类的话,api 30+可选使用这行: window.setDecorFitsSystemWindows(false) api 30以下使用下面这段 final int decorFitsFlags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;

        final View decorView = window.getDecorView();
        final int sysUiVis = decorView.getSystemUiVisibility();
        decorView.setSystemUiVisibility(decorFitsSystemWindows
                ? sysUiVis & ~decorFitsFlags
                : sysUiVis | decorFitsFlags);

请注意,开启沉浸式支持后,你可能需要修改你每一个界面的布局,否则,你的界面上的内容可能会被系统栏遮挡。

尝试后依然不行,请回复我。

好的,感谢,我尝试一下

from dialogx.

wxw-9527 avatar wxw-9527 commented on June 2, 2024

@Matcha-xiaobin 您好,经测试调用WindowCompat.setDecorFitsSystemWindows(window, false)是可以解决问题的,不过如果需要每个页面都处理沉浸式支持,我可能会选择继续使用低版本等框架修复这个问题,哈哈

from dialogx.

Matcha-xiaobin avatar Matcha-xiaobin commented on June 2, 2024

@Matcha-xiaobin 您好,经测试调用WindowCompat.setDecorFitsSystemWindows(window, false)是可以解决问题的,不过如果需要每个页面都处理沉浸式支持,我可能会选择继续使用低版本等框架修复这个问题,哈哈

有一个最简单的方法适配沉浸式,就是在baseactivity里调用这个,同时设置下状态栏颜色,然后给每一个activity的xml根布局设置fitsystemwindows=true,或者在baseactivity里setcontentview之后获取到contentview,通过代码setfitsystemwindows(true)都可以。如果没有baseactivity那确实麻烦点。

from dialogx.

wxw-9527 avatar wxw-9527 commented on June 2, 2024

已更新到0.0.49.beta18版本,目前测试正常

from dialogx.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.