Android 开发中 EditText 的滚动条如何定位到指定坐标?

大家都知道,scrollView.scrollTo(x, y) 这个方法是能对滚动条进行定位。如果直接在 Activity 中的 onCreate 方法没有结束的时候调用的话,由于数据并没有完全加载好,所以这个时候调用该方法就不会有效果。有鉴于此,可以先定义一个 Runnable 接口,用延时的办法来实现。


首先,是 EditText 嵌套在 ScrollView 的代码:

<ScrollView
android:id="@+id/scrollView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="top"
android:fadingEdge="none"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical"
android:overScrollMode="never" >
<EditText
android:id="@+id/editText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top|left"
android:hint="" />
</ScrollView>


然后,定义 Runnable 接口,在 run 中使用 scrollTo 方法:

private Runnable runnable = new Runnable() {
  @Override
  public void run() {
    scrollView.scrollTo(100, 200);
  }
};


最后,在想要定位滚动条位置的地方用一个 Handler 来把这个 Runnable 对象延时post出来:

Handler handler = new Handler();
handler.postDelayed(runnable, 1000);

这样就可以将 ScrollView 定位到任意位置了!


5