如何包含一个大的 GridView 并且仍然能够滚动?

How to contain a large GridView and still able to scroll?

我怎样才能拥有一个大的 GridView 并能够垂直和水平滚动?

我可以垂直滚动,但不能水平滚动。水平宽度固定为父宽度,不能展开大于父宽度。

下面的截图就是我要实现的例子

我可以使用 RecyclerView 垂直滚动,同时使用 ViewPager 水平滚动。 尝试实现 viewPager 水平滚动。

最简单的解决方案是

  1. 使用水平滚动视图来包含 GridView
  2. 然后根据您为 GridView 设置的列数动态 re-size GridView 宽度
  3. 最后,将列数乘以每列的宽度

    GridView gridView = (GridView) findViewById(R.id.grid_view);
    int numberOfColumns = 3;
    int sizeOfWidthPerColumn = 20;
    gridView.setNumColumns(numberOfColumns);
    ViewGroup.LayoutParams layoutParams = gridView.getLayoutParams();
    layoutParams.width = convertDpToPixels(numberOfColumns * sizeOfWidthPerColumn, this);
    gridView.setLayoutParams(layoutParams);
    

现在我可以水平和垂直滚动 GridView。