我需要建立一个水平回收视图,根据用户的选择项目向左或向右滚动。
例如,假设一个适配器包含10个项目,只有5个可见。
如果用户点击位置5,我需要滚动到位置+ 1和向后。
知道如何实现这个算法吗?
答案 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"
后,滚动行为就正常了。
希望这会有所帮助。