Android学习之ScrollView中的坑
来源:互联网 发布:c语言 实例 pdf 编辑:程序博客网 时间:2024/06/02 06:29
最近在做一个小程序,用到ScrollView的时候坑了我半天的时间。
问题描述:ScrollView中的内容不能完全显示
首先是一个跟这个问题无关的问题,布局中的fitsSystemWindows设为true为导致内容飘到状态栏后面去。
回到主题。新手,刚开始遇到这个问题,无从下手,只能靠搜索引擎。
先是有说是因为外层控件设置了margin,导致View下移。尝试把所有margin删掉,无效。
看到有提到ScrollView和ListView嵌套会出问题,于是调转方向,往这个方向走。五花八门的答案看的我一愣一愣,有写的很完整的,有从别人那儿照葫芦画瓢搬来结果还理解错了的,也是醉了。在将几乎所有可能的方法都试过无效后,我决定还是自己想想办法。
与此同时有一个很奇怪的事情就是程序刚加载的时候是显示不全的,但是当打开侧边菜单再返回后,显示就正常了。于是根据这个现象,猜测这个过程中某个View的高度发生了变化。顺着这个思路,插入测试代码,试了几次后,发现ScrollView的高度的确发生了变化,但是外层的CoordinatorLayout高度却没有变。与ScrollView并列的是一个AppBarLayout,再次测试,AppBarLayout的高度也没有变,奇了怪了。搜了一搜AppBarLayout + ScrollView,找到一篇文章提到CollapsingToolbarLayout,于是对AppBarLayout进行改造测试,虽然没有解决问题,但是又提供了一些思路。然后又找到一个问题,Toolbar will not collapse with Scrollview as child of CoordinatorLayout,根据答案将ScrollView改为NestedScrollView,无效。但这两个信息合起来后给了我启发,collapse?再去查AppBarLayout,来到了这里《玩转AppBarLayout,更酷炫的顶部栏》,在Toolbar中添加app:layout_scrollFlags="scroll|enterAlways",运行,滑动,AppBarLayout收起,ScrollView显示正常,问题解决。
推测是初始加载计算ScrollView的高度的时候没有减去AppBarLayout的高度,导致ScrollView的高度过大,超出了屏幕范围,内容其实是被“显示”出来了,只不过看不到。以后有时间再深入研究一下这个问题。
- Android学习之ScrollView中的坑
- Android学习笔记之ScrollView
- Android控件之ScrollView学习
- Android学习路之ScrollView
- Android学习之ScrollView使用文档翻译
- Android ScrollView中的ListView
- Android中的ScrollView
- Android中的ScrollView控件
- android学习笔记---ScrollView布局中的显示问题
- ngui学习之scrollview
- android:scrollView学习记录
- Android 学习记录-ScrollView
- android之ScrollView
- android控件之ScrollView
- android组件之ScrollView
- Android 之ScrollView
- Android 笔记之ScrollView
- Android UI之ScrollView
- 显式通讯录的联系人信息
- Linux程序运行时找不到动态链接库的原因
- 最小点覆盖 hdu--1054
- 笛卡尔积()
- 对称博弈 POJ 2484
- Android学习之ScrollView中的坑
- mkfs -磁盘格式化-fdisk-磁盘查看
- python面向对象编程学习[1]
- Android Paint属性详解
- 【树】二叉树转为双向链表
- CountDownLatch 和 CyclicBarrier
- android自定义带下拉刷新和Checkbox的ListView
- 模型的学习
- 参加acm暑假训练第一天