1. 程式人生 > >ScrollView 設定滾動條的位置

ScrollView 設定滾動條的位置

=================<wbr> (一)設定滾動條的初始位置<wbr> ============================================</wbr></wbr>

<wbr></wbr>

ScrollView 的滾動條預設置頂,若想設定它的位置,可以使用

mScrollView.smoothScrollTo(x,y)方法,可達到效果。

<wbr></wbr>

<wbr></wbr>

本人在開發過程中發現,使用mScrollView.scrollTo(x,y)方法,首次初始化時無效果,

改用 mScrollView.smoothScrollTo(x,y)則成功了!

<wbr></wbr>

注意:mScrollView.scrollTo(x,y) 方法不太好用的原因是:據資料說ScrollTo方法設定滾動的位置,將會呼叫 onScrollChanged(int,int ,int,int)方法,檢視被視為無效。

<wbr></wbr>

================= (二)將滾動條設定到底部<wbr><wbr> ==================================================</wbr></wbr>

太不容易了!!終於找到了好用的啊啊啊 !!!!!

Android將ScrollView移動到最底部

<wbr></wbr>

scrollTo方法可以調整view的顯示位置。
在需要的地方呼叫以下方法即可。
scroll表示外層的view,inner表示內層的view,其餘內容都在inner裡。
注意,方法中開一個新執行緒是必要的。
否則在資料更新導致換行時getMeasuredHeight方法並不是最新的高度。

public static void scrollToBottom(final View scroll, final View inner) {
Handler mHandler = new Handler();

mHandler.post(new Runnable() {
public void run() {
if (scroll == null || inner == null) {
return;
}

int offset = inner.getMeasuredHeight() - scroll.getHeight();
if (offset < 0) {
offset = 0;
}

scroll.scrollTo(0, offset);
}
});
}

<wbr><wbr></wbr></wbr>

<wbr></wbr>

================ (三)番外篇 <wbr>==================================================</wbr>


<wbr>public static int getHeight(View view) //獲得某元件的高度<br><wbr>{<br><wbr><wbr>int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);<br><wbr><wbr>int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);<br><wbr><wbr>view.measure(w, h);<br><wbr><wbr>return view.getMeasuredHeight();<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>