关于Android透明状态栏的使用以及与软键盘冲突(导致SrollView不能滑动)的解决办法
来源:互联网 发布:正交矩阵一定是方阵吗 编辑:程序博客网 时间:2024/05/17 01:28
1、透明状态栏实在android4.4以上才有的新功能
(1)通过在style文件中设置
<item name="android:windowTranslucentStatus">true</item>(2)在setContentView()后面加上下面的代码
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
2、当我们启动了透明状态栏以后,会发现包含有EditText的activity在软件盘弹出后,不能滑动了,解决办法是监听软键盘的状态,当软键盘弹出后,重新计算ScrollView的高度
final ScrollView scrollView= (ScrollView) findViewById(R.id.scrollView); final View decorView=getWindow().getDecorView(); decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect rect=new Rect(); decorView.getWindowVisibleDisplayFrame(rect); int screenHeight = decorView.getRootView().getHeight(); int heightDifference = screenHeight-rect.bottom;//计算软键盘占有的高度 = 屏幕高度 - 视图可见高度 LinearLayout.LayoutParams layoutParams= (LinearLayout.LayoutParams) scrollView.getLayoutParams(); layoutParams.setMargins(0,0,0,heightDifference);//设置ScrollView的marginBottom的值为软键盘占有的高度即可 scrollView.requestLayout(); } });
当然了,其他视图控件遇到软键盘弹出后不能滑动的情况,也可使用同样的方法,主要就是2中的setMargin方法
0 0
- 关于Android透明状态栏的使用以及与软键盘冲突(导致SrollView不能滑动)的解决办法
- 关于透明状态栏的使用以及与软键盘冲突的解决办法
- Android开发之透明导航栏状态栏后与软键盘产生冲突的问题解决
- 【Android】4.4以上使用透明状态栏后布局被软键盘遮挡的解决办法
- 安卓开发--EditText和ScrollView滑动的冲突,以及EditText内容过多导致被软键盘顶上去距离
- 关于滑动冲突踩的那些坑以及解决办法
- Android使用ScrollView+ListView时发生滑动冲突的解决办法
- android透明状态栏与开源库SystemBarTint的使用
- Android中ScrollView与listView冲突以及ScrollView与listView无法滑动(拖动)解决办法
- 使用gson导致不能混淆的解决办法
- [Android] Viewpager 与 Google map v2 冲突,导致地图不能左右滑动解决
- android 软键盘和布局的冲突
- 关于Android滑动冲突的解决方法(一)
- 关于Android滑动冲突的解决方法(二)
- 在SrollView中嵌套GridView或ListView有冲突的解决办法
- 关于Scrollview和EditText 滑动冲突的解决办法
- 关于ScrollView和WebView滑动事件冲突的解决办法
- 使用透明状态栏后,如果弹出了软键盘则会把title上面的内容顶出去
- 芒果iOS开发之定位、地理编码
- 今天一大早来了,发现mysqlserver无法启动
- vector(2)
- Unity 中的C#脚本
- 【MATLAB工程人员的福音】MATLAB R2015b的Coder工具使用实例(二)
- 关于Android透明状态栏的使用以及与软键盘冲突(导致SrollView不能滑动)的解决办法
- Myeclipse中项目重新命名
- Python基础01 Hello World! >>> 结束符 exit()
- MBR详细分析
- Android 面向协议编程 体会优雅编程之旅
- Initialization in《The Java® Virtual Machine Specification Java SE 7 Edition》
- unity 在ios上的 c#键值对数据排序
- SVN 简单使用方法
- /etc/hosts文件修改后如何生效