解决时间:9:00 — 13:50
解决路程:
1、 首先,想到的就是通过计算item和边框之间的距离来使其滚动到指定的位置,所以上网上找了一些方法,都是有关于计算的,具体代码就不说啦,反正都是不好使,具体思路就是,计算选中的item到第一个item的距离,判断是否大于屏幕的一半,大于就滚动,滚动的距离就是二者之差,
2、 可是坏就坏在判断上,这一上午的时间就一直在调试这个判断,各种判断条件都试一遍,但是,不是在开头的时候滚动不对,就是在末尾的时候滚动不对,或者向右滚动好使,但是向左不好使。也是没谁啦。
3、 最后还找了一个自定义的HorizontalScrollView,说是可以自动让item居中,但是用不明白,放弃啦,
4、 最后,自己冷静一下,然后不在按照网上代码的思路去想,自己写了一个方法,解决啦,很简单就一句话。
解决方案:
scrollViewWidth = mHorizontalScrollView.getWidth();
int rb_px = (int)rb.getX() + rb.getWidth() / 2;
mHorizontalScrollView.scrollTo( rb_px - scrollViewWidth / 2 , 0);
不在获取item之间的距离,而是获取点击的item与屏幕之间的距离getX(),不在进行判断,而是直接滚动,滚动的距离就是item与屏幕距离-屏幕的一半。这样只要可以滚动就可以滚动到中间。