Pinterest, как Grid на Android

Я хочу построить сетку, подобную той, что находится в приложении Pinterest на Android.

Я начал расширять AdapterView<ListAdapter> но я не могу заставить много работать (например, эффект overscroll), поэтому, отказавшись от идеи продлить AbsListView , теперь я начинаю думать, что лучше расширить ListView и переопределить layoutChildren() метод.

Как вы думаете?

благодаря

    Мы не будем нуждаться в какой-либо внешней библиотеке для этого, так как собственный RecyclerView от Android позволяет реализовать макет кладки Pinterest просто путем изменения Менеджера макета RecyclerView

     mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); RecyclerAdapter adapter = new RecyclerAdapter(this); mRecyclerView.setAdapter(adapter); 

    Круто. Это очень легко, но маржа на моем LinearLayout, похоже, не работает. Итак, вот краткое решение.

     SpacesItemDecoration decoration = new SpacesItemDecoration(16); mRecyclerView.addItemDecoration(decoration); 

    SpacesItemDecoration class:

     public class SpacesItemDecoration extends RecyclerView.ItemDecoration { private final int mSpace; public SpacesItemDecoration(int space) { this.mSpace = space; } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { outRect.left = mSpace; outRect.right = mSpace; outRect.bottom = mSpace; // Add top margin only for the first item to avoid double space between items if (parent.getChildAdapterPosition(view) == 0) outRect.top = mSpace; } } 

    Пример ссылки Github

    Мои окончательные результаты

    Я решил это, копируя и обновляя Android StaggeredGridView. https://github.com/maurycyw/StaggeredGridView . Кажется, отлично работает для создания эффекта, который вы ищете. До этого я спустился по кроличьей норе, чтобы скопировать исходный код Android в отдельную библиотеку (которую я получил), пока не увидел теперь экспериментальный StaggeredGridView. Это намного проще, чем мой старый проект библиотеки BrickView, поэтому я заменил его.

    AntipodalWall – это автономная библиотека, предназначенная для создания так называемой «макетной» сетки для Android (как приложение Pinterest).

    Проверьте этот проект AntipodalWall

    В моих проектах я использую: https://github.com/GDG-Korea/PinterestLikeAdapterView

    Это очень легко использовать, и это эффективное потребление памяти

    Похоже, что