我想创建一个像这样的网格视图。 (抱歉,有点乱,画得不好:D)
所以基本上 gridview 将显示第 1 - 4 项。如果我点击下一步,第 5-8 项将会出现..依此类推。
我当前的想法是设置一个包含 4 个项目的网格视图,并在每次单击按钮时更改适配器。但我认为这并不是很方便。另一个想法是使用“分页”..
谢谢!
您可以使用包含线性布局的水平滚动视图,并在线性布局中动态添加网格项(视图)。 如果您在这个想法上仍然需要帮助,请告诉我!
要实现此目的,请使用 RecyclerView 和水平 LinearLayoutManager 。但是,用户也可以滚动项目。要禁用 RecyclerView 上的滚动,您可以对其进行子类化并重写 onTouchEvent() 方法,这将禁用对 MOVE 事件的任何反应:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
return super.onTouchEvent(event);
case MotionEvent.ACTION_MOVE:
break; //Don't call super.
case MotionEvent.ACTION_UP:
return super.onTouchEvent(event);
}
return false;
}
当用户单击按钮移至下一页时,您可以在
LinearLayoutManager
对象上使用以下方法之一来查找适配器内的当前位置:
int findFirstVisibleItemPosition();
int findFirstCompletelyVisibleItemPosition();
int findLastVisibleItemPosition();
int findLastCompletelyVisibleItemPosition();
确定新位置后,您可以使用
scrollToPosition()
或 smoothScrollToPosition()
方法滚动到新数据..