欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 软键盘在有scollview,纵向viewpager+recyclview实现列表,或者recyclview, 把布局顶上去的问题,保证背景不会发生变化

程序员文章站 2022-04-12 22:39:04
上面两句代码都是要设置在布局之上的,当然这只是解决一些小问题,如果想让弹窗给布局滑动,布局上面再嵌套一个scollview即可,但是解决不了那些特别的需求。给大家说一下我的需求以及解决方案: 我们的需求是一个仿抖音实现的短视频,旁边有评论功能,点击评论功能,会弹出一个弹窗,如果把弹窗关闭之后,那个视频列表就往上推进了一个键盘的高度,然后就卡在了上面,我的解决办法就是,固定这个软件。当然固定的话是不影响滑动的。...

第一次感觉软键盘弹窗特别恶心,像网上说的在配置清单设置

 android:windowSoftInputMode="stateAlwaysHidden|adjustPan"

或者在activity和fragment设置

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

如果是在fragment设置

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

上面两句代码都是要设置在布局之上的,当然这只是解决一些小问题,如果想让弹窗给布局滑动,布局上面再嵌套一个 scollview即可,但是解决不了那些特别的需求。

给大家说一下我的需求以及解决方案:

我们的需求是一个仿抖音实现的短视频,旁边有评论功能,点击评论功能,会弹出一个弹窗,如果把弹窗关闭之后,那个视频列表就往上推进了一个键盘的高度,然后就卡在了上面,我的解决办法就是,固定这个软件。当然固定的话是不影响滑动的。

 Rect outRect = new Rect();
        getActivity().getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect);
        ViewGroup.LayoutParams layoutParams = mRefresh.getLayoutParams();
        layoutParams.height = outRect.bottom - outRect.top;

在给大家详解一下这个方法,根据自己的需求,不想让那个控件动的话,就把我方法里面的mRefresh换成你想要的控件即可。

本文地址:https://blog.csdn.net/nazicsdn/article/details/107760448

相关标签: Android