我在 ScrollView 中显示一些数据。在活动启动(方法 onCreate)时,我用数据填充 ScrollView 并希望滚动到底部。
我尝试使用 getScrollView().fullScroll(ScrollView.FOCUS_DOWN)
。这在我将其作为按钮单击的操作时有效,但在 onCreate 方法中不起作用。
有什么方法可以在活动启动时将 ScrollView 滚动到底部?这意味着视图在第一次显示时已经滚动到底部。
需要按以下方式进行:
getScrollView().post(new Runnable() {
@Override
public void run() {
getScrollView().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);
}
});
}
});
您可以在布局文件中执行此操作:
android:id="@+id/listViewContent"
android:layout_width="wrap_content"
android:layout_height="381dp"
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll">
scrollView.postDelayed(new Runnable() {
@Override
public void run() {
scrollView.fullScroll(ScrollView.FOCUS_DOWN);
}
},1000);
尝试这个
final ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview));
scrollview.post(new Runnable() {
@Override
public void run() {
scrollview.fullScroll(ScrollView.FOCUS_DOWN);
}
});
将数据附加到视图后,立即添加这一行:
yourScrollview.fullScroll(ScrollView.FOCUS_DOWN);
这是最好的方法。
scrollView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
scrollView.post(new Runnable() {
@Override
public void run() {
scrollView.fullScroll(View.FOCUS_DOWN);
}
});
}
});
在初始化你的 UI 组件并用数据填充它之后。将这些行添加到您的 on create 方法中
Runnable runnable=new Runnable() {
@Override
public void run() {
scrollView.fullScroll(ScrollView.FOCUS_DOWN);
}
};
scrollView.post(runnable);
Activity
的onCreate
中调用上述代码?