Scrollview嵌套PreferenceFragment导致Fragment高度异常问题
Scrollview嵌套PreferenceFragment导致Fragment高度异常问题
- 起因
- 解决过程
- 结果
起因
为了在普通布局中嵌入多个switchpreference,自然就使用了PreferenceFragment来加载preferencescreen来实现。
但是测试时发现,如果调大字体,就会造成布局高度超出一屏,而且无法滑动。
解决过程
首先想到的是在布局外加一层ScrollView,但是实际效果却是PreferenceFragment高度被压缩。查了一下发现PreferenceFragment里也有一个listview,类似Scrollview嵌套ListView的效果。
然后又是一通搜索,找到一个方法,需要重写PreferenceFragment的onActivityCreate()方法,自己计算listview的高度。
代码如下:
@Override
public void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);View rootView = getView();ListView list = (ListView)rootView.findViewById(android.R.id.list);list.setDivider(null);//去掉SwitchPreference之间的分割线Adapter adapter = list.getAdapter();if (adapter != null) {int height = 0;for (int i = 0; i < adapter.getCount(); i++) {View item = adapter.getView(i, null, list);item.measure(0, 0);height += item.getMeasuredHeight();LinearLayout frame = (LinearLayout) getActivity().findViewById(R.id.privacy_fragment); //Modify thisfor your fragmentViewGroup.LayoutParams param = frame.getLayoutParams();param.height = height + (list.getDividerHeight() * adapter.getCount());frame.setLayoutParams(param);}}
}
以上代码来自(PreferenceFragment放在ScrollView中高度为0 高度失效)
经过验证,发现效果很不好。
结果
困扰了三天后,突然想到,为什么不试试拆开preferencescreen呢?每一个fragment中只加入一个switchpreference,然后在布局中加入多个fragment。
经过验证,这种方案效果非常好。
Scrollview嵌套PreferenceFragment导致Fragment高度异常问题相关推荐
- Android之解决ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题
1 问题 ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题 2 解决办法 1).ScrollView替换成普通布局,然后RecycleView用的BaseMultiItem ...
- Android ScrollView嵌套GridView导致GridView只显示一行item
Android ScrollView嵌套GridView导致GridView只显示一行item Android ScrollView在嵌套GridView时候,会导致一个问题发生:GridView只显 ...
- Android Scrollview嵌套RecyclerView导致滑动卡顿问题解决(屡试不爽)
今天开发的一个项目首页,布局还是比较复杂的,各种滑动冲突,(Banner+横向RecyclerView+纵向RecyclerView(item又是横向的RecyclerView)), 最外面的框架用 ...
- Android ScrollView嵌套RecyclerView导致在三星s8曲面屏显示不全问题
当RecyclerView适配显示不全时可以单独给其嵌套一个相对布局!!!(必须是相对布局),这样在曲面屏手机就可以全部显示出来如下图所示 <RelativeLayoutandroid:layo ...
- ScrollView嵌套RecyclerView导致在三星s8曲面屏显示不全问题
当RecyclerView适配显示不全时可以单独给其嵌套一个相对布局!!!(必须是相对布局),这样在曲面屏手机就可以全部显示出来如下图所示 <RelativeLayout android:lay ...
- NestedScrollView/ScrollView嵌套Recyclerview,导致Recyclerview抢占焦点,置顶了, 修改好后,引起Edittext又不能点击问题处理
NestedScrollView/ScrollView嵌套Recyclerview,导致Recyclerview抢占焦点,置顶了, 修改好后,引起Edittext又不能点击问题处理 NestedScr ...
- weex解决scrollView嵌套webview高度问题,安卓自定义weex组件webview,
weex页面有scrollView嵌套web的页面,如果不给web指定高度就显示不出来.RN也有这个问题,查了下全部是通过原生开启一个不显示的webview提前加载一遍再将高度传给weex来解决,这种 ...
- ScrollView 嵌套EditText 滑动冲突解决
ScrollView 嵌套EditText,导致EditText 文字过多,滑动不了. 布局文件: <?xml version="1.0" encoding="ut ...
- 四种方案解决ScrollView嵌套ListView问题
在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结 ...
最新文章
- 013_Vue监听器
- NetBeans IDE 实现php开发自动上传到开发服务器 的设置
- iphone开机白苹果_摔过的iPhone,手机不开机、白苹果、听筒无声,多重问题一次搞定...
- 网络知识:电脑无线网连接不上问题汇总!
- Redis(1):简介
- python nums函数获取结果记录集有多少行记录_python3 数据挖掘之pandas学习记录(一)-----NumPy...
- [转载] 希腊字母读音表
- 遍历lucene索引库的字段名
- 161011、oracle批量插入数据
- 20145209 《信息安全系统设计基础》第10周学习总结
- centos7下源码安装mysql5.6_Centos7 源码安装mysql5.6
- c/c++ 中文件路径的表示
- 监控PGA最大空间、分配
- 卷积编码的原理与MATLAB及FPGA实现
- Frament与activity切换
- 双稳态电路的两个稳定状态是什么_NE555集成电路--交替闪烁灯
- 招商银行SWIFT CODE/BIC/BRANCH CODE一览表
- opencv实例三:播放AVI格式视频
- delphi的函数round、trunc、ceil、floor 和RoundTo
- 湘潭市古城中学《西游记》手抄报活动作品展示