如何在活动启动时滚动到ScrollView的底部
我在ScrollView中显示一些数据。 在活动启动(方法onCreate)我填充数据滚动视图,并希望滚动到底部。
我试图使用getScrollView().fullScroll(ScrollView.FOCUS_DOWN)
。 当我把它作为一个button点击的动作,但它不能在onCreate方法中工作。
有什么办法如何将ScrollView滚动到活动启动的底部? 这意味着视图在第一次显示时已经滚动到底部。
它需要完成如下:
getScrollView().post(new Runnable() { @Override public void run() { getScrollView().fullScroll(ScrollView.FOCUS_DOWN); } });
这样,视图首先被更新,然后滚动到“新”底部。
添加数据后input以下代码:
final ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview)); scrollview.post(new Runnable() { @Override public void run() { scrollview.fullScroll(ScrollView.FOCUS_DOWN); } });
这适用于我:
scrollview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { scrollview.post(new Runnable() { public void run() { scrollview.fullScroll(View.FOCUS_DOWN); } }); } });
你可以在布局文件中做到这一点:
android:id="@+id/listViewContent" android:layout_width="wrap_content" android:layout_height="381dp" android:stackFromBottom="true" android:transcriptMode="alwaysScroll">
在将数据追加到视图之后,添加这一行:
yourScrollview.fullScroll(ScrollView.FOCUS_DOWN);
尝试这个
final ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview)); scrollview.post(new Runnable() { @Override public void run() { scrollview.fullScroll(ScrollView.FOCUS_DOWN); } });
这是做这个最好的方法。
scrollView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { scrollView.post(new Runnable() { public void run() { scrollView.fullScroll(View.FOCUS_DOWN); } }); }
初始化UI组件并填充数据。 将这些行添加到您的创build方法
Runnable runnable=new Runnable() { @Override public void run() { scrollView.fullScroll(ScrollView.FOCUS_DOWN); } }; scrollView.post(runnable);
scrollView.postDelayed(new Runnable() { @Override public void run() { scrollView.fullScroll(ScrollView.FOCUS_DOWN); } },1000);