=================<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移动到最底部
【转自】http://hi.baidu.com/gaogaf/item/36e8a4c8ac6ba31050505848<wbr></wbr>
<wbr></wbr>
在需要的地方调用以下方法即可。
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>