ScrollView嵌套ListView设置默认位置为最顶部的解决方案
2017-04-21 16:48
246 查看
描述:
Scrollview里面嵌套了一个listview ,这是开发中最寻常的一种布局,遇到的问题是:在这个Scrollview页面默认的起始位置不是最顶部,而是listview的底部。
原因:
在Activity计算窗口的高度时,是在listview没有填充数据时候就完成的,由于ScrollView嵌套listview时没有指定高度,所以ScrollView就会按照layout中定义的默认高度计算。因为listview获取了焦点。
解决:
myScrollView.smoothScrollTo(0,20);需在listview数据加载完成后调用
在代码里去掉listview的焦点
lv.setFocusable(false);
Listview外套一层LinearLayout
跟EditText一样,在父元素的属性下面下下面这两行即可
android:focusableInTouchMode=”true”
android:focusable=”true”
最开始的时候让最上面其中一个控件获得焦点,滚动条自然就到顶部去了,如下:
txtBaseMsg.setFocusable(true);
txtBaseMsg.setFocusableInTouchMode(true);
txtBaseMsg.requestFocus();
相关文章推荐
- Android问题:ScrollView默认位置不是最顶部最全解决方案
- ScrollView嵌套ListView默认位置不是最顶部的解决方案
- scrollView嵌套listView,重新设置listview高度解决冲突,但打开activity之后,初始位置不是顶部解决方案
- ScrollView默认位置不是最顶部最全解决方案
- Android问题:ScrollView默认位置不是最顶部最全解决方案
- ScrollView默认位置不是最顶部最全解决方案
- Android 使用ScrollView 默认位置不是最顶部的解决方案
- Combox默认项设置的问题及解决方案
- 4步搞定:系统必备的安装位置未设置为组件供应商的网站,无法在磁盘上找到 dotNetFx40LP_Client_x86_x64cs.exe 问题的解决方案 VS2010 SP1 简体中文测试通过,繁体未测试
- 设置emacs默认启动窗口位置和大小
- Android】Android apk默认安装位置设置
- android 默认打开位置服务,默认关闭GPS设置
- 修改时间格式 gps 移动网络位置信息默认 音量设置
- div层滑动条自动显示并固定设置滑动条默认滑动块位置
- 【Android】Android apk默认安装位置设置
- 自定义Dialog,去除系统默认黑色背景以及边框并设置dialog的显示位置
- 与货币管理器的位置关联的行不能设置为不可见异常解决方案
- [转]ClickOnce部署出现 系统必备的安装位置未设置为组件供应商的网站,无法在磁盘上找到 dotNetFx40LP_Client_x86_x64cs.exe 问题的解决方案
- spring默认启动位置以及contextConfigLocation设置源码解析
- 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的。