ScrollView 设置滚动条的位置

=================  (一)设置滚动条的初始位置  ============================================

 

ScrollView 的滚动条默认置顶,若想设置它的位置,可以使用

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

 

 

本人在开发过程中发现,使用mScrollView.scrollTo(x,y)方法,首次初始化时无效果,

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

 

注意:mScrollView.scrollTo(x,y) 方法不太好用的原因是:据资料说ScrollTo方法设置滚动的位置,将会调用 onScrollChanged(int,int ,int,int)方法,视图被视为无效。

 

================= (二)将滚动条设置到底部   ==================================================

太不容易了!!终于找到了好用的啊啊啊 !!!!!

Android将ScrollView移动到最底部

【转自】http://hi.baidu.com/gaogaf/item/36e8a4c8ac6ba31050505848

 

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);
}
});
}

  

 

================ (三)番外篇  ==================================================


 public static int getHeight(View view) //获得某组件的高度
 {
  int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
  int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
  view.measure(w, h);
  return view.getMeasuredHeight();
 }

转载于:https://my.oschina.net/u/150685/blog/281816

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值