我想实现这种布局:
在我显示多个TextView的情况下,用户将能够水平滚动,列表将捕捉到中央项目(我将能够检索)。
看起来我有几个选择,但没有一个令人满意。
首先我研究了HorizontalScrollView
,但它只进行了滚动而没有捕捉。
Gallery
已被弃用,但看起来最有希望 - 我只需覆盖适配器中的getView
:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = convertView == null ? new TextView(getActivity()) : (TextView) convertView;
tv.setText(getItem(position));
tv.measure(0, 0);
int width = tv.getMeasuredWidth();
tv.setLayoutParams(new Gallery.LayoutParams(width + 100, 100));
return tv;
}
其他可用选项是ViewPager
,但看起来ViewPager更喜欢与ViewPager本身一样宽的视图。
使用Gallery
有什么问题吗?我不太喜欢Google在不提供等效替代品的情况下弃用View,但我担心在未来的Android版本中它会消失。
答案 0 :(得分:1)
据我所知,弃用的课程不会消失。它们不再受支持了,所以如果类的代码中存在错误,那么没有人会在未来的API版本中修复它。
如果Gallery无法解决问题,那么网络周围会有一些水平列表视图的实现 - 只需使用/扩展一个,这样就可以获得与smoothScrollToPosition(int position)等效的内容。