Android horizontal scroll in grid view

2019-08-27 04:28发布

问题:

I want to implement a horizontal grid view where images and all other descriptions will be provided by a server.

I am able to put images inside a grid view but it is scrolling vertically even if I put my grid view inside a HorizontalScrollView.

It should look like: left image, center image, right image. If there is any previous or next image then that image should remain partially visible at the left and right edges of the screen. On scrolling left or right, the next/previous image should move to the center.

Can any one tell me how best to implement this behavior without using a third party library?

回答1:

My suggestion would be to swap out the GridView for a RecyclerView. The RecyclerView + LayoutManager combination allows much more variety in layouts of this type. From the RecyclerView.LayoutManager documentation:

By changing the LayoutManager a RecyclerView can be used to implement a standard vertically scrolling list, a uniform grid, staggered grids, horizontally scrolling collections and more.

You would want to look at the GridLayoutManager to start with. My guess is that the orientation parameter in the constructor:

GridLayoutManager(Context context, int spanCount, int orientation, boolean reverseLayout)

may allow you to set up horizontal scrolling quite easily. At worst, you may have to do some custom touch handling to manage horizontal motion.