我正在尝试实现一次在屏幕上显示1个CardView的RecylerView,并通过左右两个箭头ImageButtons控制。我不想让用户自己滚动RecyclerView。如何禁用RecylerView的滚动和拖动功能?
这是我用LinearLayoutManager初始化视图的地方
final LinearLayoutManager llm = new LinearLayoutManager(this);
llm.setOrientation(LinearLayoutManager.HORIZONTAL);
final RecyclerView recList = (RecyclerView) findViewById(R.id.card_holder);
recList.setHasFixedSize(true);
recList.setLayoutManager(llm);
这里是我设置左右滚动按钮的地方
ImageButton rightClick = (ImageButton) findViewById(R.id.rightClick);
ImageButton leftClick = (ImageButton) findViewById(R.id.leftClick);
rightClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = llm.findFirstVisibleItemPosition();
if(position != recList.getAdapter().getItemCount() - 1) {
markers[position + 1].showInfoWindow();
GMap.moveCamera(CameraUpdateFactory.newLatLngZoom(result.get(position + 1).latlng, 17.0f));
recList.smoothScrollToPosition(llm.findFirstVisibleItemPosition() + 1);
}
}
});
leftClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = llm.findFirstVisibleItemPosition();
if(position != 0) {
GMap.moveCamera(CameraUpdateFactory.newLatLngZoom(result.get(llm.findFirstVisibleItemPosition() - 1).latlng, 17.0f));
recList.smoothScrollToPosition(llm.findFirstVisibleItemPosition() - 1);
}
}
});
答案 0 :(得分:0)
我不知道确切的解决方案,但这个对我有用
verticalRow.setNestedScrollingEnabled(假);
//此处verticalRow是recylerview对象
答案 1 :(得分:0)
这似乎是AdapterViewFlipper提供的行为 摘录如下。
课程概述
简单的ViewAnimator,可以在两个或多个视图之间设置动画 已添加到它。一次只能展示一个孩子。如果 要求,可以在每个孩子之间自动翻转 间隔。