我正在尝试实现一个RecylerView,它一次在屏幕上显示一个CardView,并通过两个左右箭头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);
}
}
});
发布于 2015-12-07 11:32:55
我不知道确切的解决办法,但这个方法对我有用
VerticalRow.setNestedScrollingEnabled(假);
//这里verticalRow是recylerview对象
发布于 2016-01-05 18:34:32
这似乎是AdapterViewFlipper提供的下面摘录的行为。
类概述 简单的ViewAnimator,它将在添加到它的两个或多个视图之间动画。一次只显示一个孩子。如果有要求,可以在每个孩子之间按一定的间隔自动翻转。
https://stackoverflow.com/questions/30580059
复制相似问题