我想要一个简单的无限滚动水平滚动视图,其中有限的可见项目如下图所示: http://i.stack.imgur.com/uDqkn.jpg
与此图像类似,一次可见4个视图,第一个项目左侧显示最后一个项目,就像任何轮播一样。
目前我正在使用simpel HorizontalScrollView:
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:overScrollMode="never"
android:requiresFadingEdge="none"
android:scrollbars="none">
<LinearLayout
android:id="@+id/itv_tabs_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!--Some Views-->
</LinearLayout>
</LinearLayout>
但是我需要它是圆形的......就像我可以向两个方向移动它而没有任何限制
任何建议或链接都会有所帮助。
由于
答案 0 :(得分:1)
按照Creating Lists and Cards进行以下更改:
在xml中的RecyclerView元素中添加值android:orientation
的{{1}}属性
horizontal
设置<!-- A RecyclerView with some commonly used attributes -->
<android.support.v7.widget.RecyclerView
android:id="@+id/my_recycler_view"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" /> // <-- this is changed
后滚动到中间位置:
RecyclerView
如果值超出限制,请更新 // specify an adapter (see also next example)
mAdapter = new MyAdapter(myDataset);
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.scrollToPosition(Integer.MAX_VALUE / 2);
以返回正确的onBindViewHolder()
:
ViewHolder
最后,从// Replace the contents of a view (invoked by the layout manager)
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// - get element from your dataset at this position
// - replace the contents of the view with that element
holder.mTextView.setText(mDataset[position % mDataset.length]); // <-- this is changed
}
Integer.MAX_VALUE
getItemCount()
<强>限制:强>
我假设用户不会滚动视图// Return the size of your dataset (invoked by the layout manager)
@Override
public int getItemCount() {
return Integer.MAX_VALUE;
}
/ 2次,否则他们将到达终点。
希望这有帮助。