大家都知道,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 定位到任意位置了!