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高度异常问题相关推荐

  1. Android之解决ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题

    1 问题 ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题 2 解决办法 1).ScrollView替换成普通布局,然后RecycleView用的BaseMultiItem ...

  2. Android ScrollView嵌套GridView导致GridView只显示一行item

    Android ScrollView嵌套GridView导致GridView只显示一行item Android ScrollView在嵌套GridView时候,会导致一个问题发生:GridView只显 ...

  3. Android Scrollview嵌套RecyclerView导致滑动卡顿问题解决(屡试不爽)

    今天开发的一个项目首页,布局还是比较复杂的,各种滑动冲突,(Banner+横向RecyclerView+纵向RecyclerView(item又是横向的RecyclerView)),  最外面的框架用 ...

  4. Android ScrollView嵌套RecyclerView导致在三星s8曲面屏显示不全问题

    当RecyclerView适配显示不全时可以单独给其嵌套一个相对布局!!!(必须是相对布局),这样在曲面屏手机就可以全部显示出来如下图所示 <RelativeLayoutandroid:layo ...

  5. ScrollView嵌套RecyclerView导致在三星s8曲面屏显示不全问题

    当RecyclerView适配显示不全时可以单独给其嵌套一个相对布局!!!(必须是相对布局),这样在曲面屏手机就可以全部显示出来如下图所示 <RelativeLayout android:lay ...

  6. NestedScrollView/ScrollView嵌套Recyclerview,导致Recyclerview抢占焦点,置顶了, 修改好后,引起Edittext又不能点击问题处理

    NestedScrollView/ScrollView嵌套Recyclerview,导致Recyclerview抢占焦点,置顶了, 修改好后,引起Edittext又不能点击问题处理 NestedScr ...

  7. weex解决scrollView嵌套webview高度问题,安卓自定义weex组件webview,

    weex页面有scrollView嵌套web的页面,如果不给web指定高度就显示不出来.RN也有这个问题,查了下全部是通过原生开启一个不显示的webview提前加载一遍再将高度传给weex来解决,这种 ...

  8. ScrollView 嵌套EditText 滑动冲突解决

    ScrollView 嵌套EditText,导致EditText 文字过多,滑动不了. 布局文件: <?xml version="1.0" encoding="ut ...

  9. 四种方案解决ScrollView嵌套ListView问题

    在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结 ...

最新文章

  1. 013_Vue监听器
  2. NetBeans IDE 实现php开发自动上传到开发服务器 的设置
  3. iphone开机白苹果_摔过的iPhone,手机不开机、白苹果、听筒无声,多重问题一次搞定...
  4. 网络知识:电脑无线网连接不上问题汇总!
  5. Redis(1):简介
  6. python nums函数获取结果记录集有多少行记录_python3 数据挖掘之pandas学习记录(一)-----NumPy...
  7. [转载] 希腊字母读音表
  8. 遍历lucene索引库的字段名
  9. 161011、oracle批量插入数据
  10. 20145209 《信息安全系统设计基础》第10周学习总结
  11. centos7下源码安装mysql5.6_Centos7 源码安装mysql5.6
  12. c/c++ 中文件路径的表示
  13. 监控PGA最大空间、分配
  14. 卷积编码的原理与MATLAB及FPGA实现
  15. Frament与activity切换
  16. 双稳态电路的两个稳定状态是什么_NE555集成电路--交替闪烁灯
  17. 招商银行SWIFT CODE/BIC/BRANCH CODE一览表
  18. opencv实例三:播放AVI格式视频
  19. delphi的函数round、trunc、ceil、floor 和RoundTo
  20. 湘潭市古城中学《西游记》手抄报活动作品展示

热门文章

  1. 浅谈 SOLIDWORKS 的同步建模技术 | 产品探索
  2. 作业一学期二书十五章
  3. 联想台式计算机 恢复出厂设置,电脑恢复出厂设置,详细教您联想电脑怎么恢复出厂设置...
  4. Mysql 查询区分大小写的两种方法
  5. 【汇正财经】建材回暖,建筑业景气扩张
  6. Java 四种引用类型完全解析
  7. FPGA-vivado仿真导出波形文件
  8. 报错remove Directory not empty
  9. autoCAD2022 - 设置新的原点
  10. 诚之和:百度申请metaapp商标,多个互联网大厂入局元宇宙赛道