我在顯示滾動型的一些數據。在活動啓動(方法onCreate)我用數據填充ScrollView,並希望滾動到底部。如何滾動到底在滾動型上的活動啓動
我試圖用getScrollView().fullScroll(ScrollView.FOCUS_DOWN)
。當我把它作爲按鈕點擊的動作時,它會起作用,但它在onCreate方法中不起作用。
有什麼辦法如何滾動了滾動中的活動啓動的底部?這意味着視圖在第一次顯示時已經滾動到底部。
我在顯示滾動型的一些數據。在活動啓動(方法onCreate)我用數據填充ScrollView,並希望滾動到底部。如何滾動到底在滾動型上的活動啓動
我試圖用getScrollView().fullScroll(ScrollView.FOCUS_DOWN)
。當我把它作爲按鈕點擊的動作時,它會起作用,但它在onCreate方法中不起作用。
有什麼辦法如何滾動了滾動中的活動啓動的底部?這意味着視圖在第一次顯示時已經滾動到底部。
它需要做如下:
getScrollView().post(new Runnable() {
@Override
public void run() {
getScrollView().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">
這實際上適合我!道具! – 2012-09-16 10:51:56
太棒了! :) – 2012-10-09 08:46:36
這隻適用於你的滾動視圖是列表視圖。 – 2013-07-03 21:39:52
將下面的代碼加到你的數據之後:
final ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview));
scrollview.post(new Runnable() {
@Override
public void run() {
scrollview.fullScroll(ScrollView.FOCUS_DOWN);
}
});
對我來說,這隻適用於postDelayed而不是後期。只有100毫秒的延遲。 – 2013-06-20 08:19:00
完美。 當然與 scrollview.fullScroll(ScrollView.FOCUS_UP)連擊; – KNU 2015-01-15 01:46:51
試試這個
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組件並填充數據後。這些行添加到您的創建方法
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);
這也解釋了爲什麼我得到0所有,當我試圖用getMeasuredWidth同時初始化我自己的滾動型的子類時。 – Ghoti 2012-07-27 15:01:57