ScrollView包含其他可scroll的view时保持滑到最顶端
16lz
2021-01-25
今天做东西时碰到一个问题。
ScrollView时包含了普通的layout还有EditText.
布局如下:
1 <ScrollView 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 > 5 <LinearLayout 6 android:layout_width="match_parent" 7 android:layout_height="wrap_content" 8 android:orientation="vertical" 9 >10 <LinearLayout11 android:layout_width="match_parent"12 android:layout_height="wrap_content"13 >14 <TextView15 android:layout_width="match_parent"16 android:layout_height="50dip"17 android:text="aa"18 />19 </LinearLayout>20 <LinearLayout21 android:layout_width="match_parent"22 android:layout_height="wrap_content"23 android:background="@drawable/detail_back"24 >25 <EditText26 android:layout_width="match_parent"27 android:layout_height="wrap_content"28 android:minHeight="600dip"29 android:text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa30 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa31 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa32 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa33 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa34 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa35 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa36 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa37 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa38 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"39 android:background="#00000000"40 android:gravity="top"41 />42 </LinearLayout>43 </LinearLayout>44 </ScrollView>
然后显示里ScrollView总是自动向上滑了一点,滑到了EditText的位置,内容没有从最顶开始显示,非常影响使用。
这是因为EditText获取了焦点,ScrollView自动滑到了焦点位置。
解决办法1,去除EditText的焦点,EditTex的属性里,在xml里加上(或用代码设置):
1 android:focusable="false"2 android:focusableInTouchMode="false"
解决办法2,在代码里,调用
1 new Handler().postDelayed(new Runnable(){2 3 @Override4 public void run() {5 // TODO Auto-generated method stub6 //sv.scrollTo(0, 0);7 scrollview.pageScroll(View.FOCUS_UP);8 }}, 10);
为啥要放handler里咧,因为直接调用没有响应,这是个耗时操作,延迟时间请自行调整。
推荐使用方法1.
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- MediaRecorderClient决定使用stagefright还是opencore实现录音录
- Android(安卓)ViewDragHelper使用介绍
- Android(安卓)glide-transformations 使用demo 实现Blur等效果
- listView单选实现(一)
- SeekBar的使用
- Android事件处理(6)
- android知识杂记(一)
- Android(安卓)通过包名打开App的代码