如何在活动启动时滚动到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);