Intereting Posts
Чтение / dev / вход / событие в android через язык программирования Java Сделайте что-нибудь, когда я буду находиться внутри радиуса круга Можно ли использовать команды adb, чтобы щелкнуть мышью по просмотру, найдя его идентификатор? Android WallpaperManager crop изображения Как я могу сделать кнопку более отзывчивой? Непрерывно увеличивайте целочисленное значение при нажатии кнопки Каков наилучший способ реализации отношений «многие ко многим» с использованием ORMLite? Одиночный наблюдаемый с несколькими подписчиками URL-адрес, чтобы открыть приложение facebook в android Как использовать signalr в Android Eclipse Project совместим с Java SE и Android Как спроектировать внутреннюю карту здания? Android Studio: дубликаты файлов, скопированных в APK META-INF / DEPENDENCIES при компиляции Как записывать аудио / голос в фоновом режиме непрерывно в Android? Событие Touchstart никогда не запускается на Android Chrome при первом загрузке страницы

Android разнородный gridview как pinterest?

Можно ли создавать pinterest как макет на Android с помощью GridView ? Я хочу создать галерею изображений с помощью GridView но я не уверен, что это хорошее решение. Я не хочу создавать три LinearLayouts (я думаю, что это решение не очень хорошо: Pinterest style listview или gridview в android )

Есть идеи ;)?

Введите описание изображения здесь

Solutions Collecting From Web of "Android разнородный gridview как pinterest?"

Создайте макет, как показано ниже.

 <ScrollView...> <LinearLayout.... android:id="@+id/linear1" orientation="horizontal"> <LinearLayout.... android:id="@+id/linear2" android:layout_weight="0.33" orientation="vertical"> <LinearLayout.... android:id="@+id/linear3" android:layout_weight="0.33" orientation="vertical"> <LinearLayout.... android:layout_weight="0.33" orientation="vertical"> </LinearLayout> </ScrollView> 

Теперь динамически добавьте ImageView в макеты

 linear1 = (LinearLayout) findViewById(R.id.linear1); linear2 = (LinearLayout) findViewById(R.id.linear2); linear3 = (LinearLayout) findViewById(R.id.linear3); for(int i=0;i<n;i++) { ImageView iv = new ImageView(this); iv.setImageResource(R.id.icon); int j = count % 3; <---- if(j==0) linear1.addView(iv); else if(j==1) linear2.addView(iv); else linear3.addView(iv); } 

вывод:

Введите описание изображения здесь

Я тоже играл с этим (использовал LinearLayout), но в конце у меня было много проблем с потреблением памяти (особенно когда мне приходилось перезагружать элементы). Я остановился на простом решении, которое использует два синхронизированных списка ListView . Таким образом, я могу использовать внутреннее кэширование, которое очень помогает. Для этого мне пришлось использовать OnTouchListener и OnScrollListener, которые синхронизируют списки. Вот пример:

https://github.com/vladexologija/PinterestListView

Введите описание изображения здесь

Автономный помощник для синхронизации прокрутки 2 списков ListView: https://gist.github.com/yanchenko/6179793

Для недавних посетителей этого вопроса я бы предложил использовать RecyclerView с StaggedGridLayoutManager . Он обладает более чем достаточными функциями и гибкостью.

Я использую этот lib: https://github.com/huewu/PinterestLikeAdapterView .

Это работает очень хорошо. Единственная проблема, с которой я столкнулся, заключается в том, что setOnItemClickListener и setOnItemLongClickListener немного setOnItemLongClickListener , поэтому я устанавливаю слушателей непосредственно на convertView.

Эта библиотека поступает из приложения Etsy: https://github.com/etsy/AndroidStaggeredGrid