• ScrollView包含其他可scroll的view时保持滑到最顶端


    今天做东西时碰到一个问题。

    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             <LinearLayout
    11                 android:layout_width="match_parent"
    12                 android:layout_height="wrap_content"
    13                 >
    14                 <TextView
    15                     android:layout_width="match_parent"
    16                     android:layout_height="50dip"
    17                     android:text="aa"
    18                     />
    19                 </LinearLayout>
    20             <LinearLayout
    21                 android:layout_width="match_parent"
    22                 android:layout_height="wrap_content"
    23                 android:background="@drawable/detail_back"
    24                 >
    25                 <EditText
    26                     android:layout_width="match_parent"
    27                     android:layout_height="wrap_content"
    28                     android:minHeight="600dip"
    29                     android:text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    30                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    31                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    32                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    33                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    34                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    35                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    36                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    37                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    38                     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             @Override
    4             public void run() {
    5                 // TODO Auto-generated method stub
    6                 //sv.scrollTo(0, 0);
    7                 scrollview.pageScroll(View.FOCUS_UP);
    8             }}, 10);

    为啥要放handler里咧,因为直接调用没有响应,这是个耗时操作,延迟时间请自行调整。


    推荐使用方法1.

  • 相关阅读:
    Django 2.1 配sql server 2008R2
    1.内网安全代理技术
    3.frp搭建socks5代理
    2.变量常量和注释
    1.域环境&工作组&局域网探针方案
    4.nps搭建socks5代理
    1.php介绍和安装
    2.内网安全隧道技术
    3.横向smb&wmi明文或hash传递
    5.域横向CobaltStrike&SPN&RDP
  • 原文地址:https://www.cnblogs.com/jayceli/p/2691403.html
Copyright © 2020-2023  润新知