如果有更多项目,水平RecyclerView向左或向右滚动

时间:2016-06-06 13:17:03

标签: android android-recyclerview horizontal-scrolling

我需要建立一个水平回收视图,根据用户的选择项目向左或向右滚动。

例如,假设一个适配器包含10个项目,只有5个可见。

如果用户点击位置5,我需要滚动到位置+ 1和向后。

知道如何实现这个算法吗?

2 个答案:

答案 0 :(得分:0)

根据你的解释:

For example imagine an adapter that holds 10 items and only five are visible.

if user tap on position 5 i need to scroll to position + 1 and backwards.

您可以实现接口以获取有关itemClicked(int position)

的活动或片段的回调
public interface OnItemClickListener{
    void onItemClick(int position);
}

在活动或片段上,您将实现该接口

public class MyActivity extends AppCompatActivity implements OnItemClickListener{

    RecyclerView mRecyclerView;

    @Override
    public void onItemClick(int position){
        if(position == ((LinearLayoutManager)mRecyclerView.getLayoutManager()) .findLastVisibleItemPosition()){
            mRecyclerView.smoothScrollToPosition(position + 1);
       }
    }

}

答案 1 :(得分:0)

我有类似的问题。就我自己而言,我有(嵌套的)评论/回复列表,并且当我向下滚动列表时, RecyclerView 上具有更多内容的最后一项会自动向右滚动,而不允许我滚动左。

RecyclerView 包裹在 NestedScrollView 内并设置overScrollMode="never"后,滚动行为就正常了。

希望这会有所帮助。