Intereting Posts
Android webview ui Вход в twitter с использованием материалов в android AccountService.verifyCredentials () не принимает новый Callback <User> () в качестве параметра Android отображает различное изображение на разных разрешениях Кластеры Android и маркеры Где находится список трансляции Android для Android Как использовать tabHost для Android Загрузите большие файлы из android, с восстановлением по ошибке Где развернутый файл apk? Как удалить его с помощью adb? Ошибка сборки Gradle: Android java.exe завершен с ненулевым значением выхода 1 Обработка интерактивных областей в представлении изображения Прозрачная строка состояния и панель инструментов NestedScrollView, содержащий контент меньший, чем высота экрана. Прокрутки в CoordinatorLayout Как приложения могут использовать Google Offline Maps с Android 4+? Фрагменты кажутся излишними? Возможна ли архитектура MVC? Android: транзакции SQLite при использовании ContentResolver

Выделение подсмотров в макете программно

Я пытаюсь отображать макеты в относительной компоновке на планшете, как книжная полка. Там будет много, а затем создается новая строка.

Мое начальное состояние выглядит так:

<ScrollView android:layout_marginTop="150sp" android:layout_marginLeft="50sp" android:layout_width="fill_parent" android:layout_height="fill_parent"> <RelativeLayout android:id="@+id/user_list" android:layout_width="wrap_content" android:layout_height="wrap_content"> <!-- Add User Avatar --> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/user_frame" /> <ImageView android:id="@+id/demo_image" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/add_user" android:layout_marginLeft="10px" /> <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/user_name_background" android:layout_marginLeft="10px" /> <TextView android:id="@+id/user_name" android:layout_width="180px" android:layout_height="wrap_content" android:textSize="20sp" android:textStyle="bold" android:gravity="center_horizontal" android:text="Add New User" /> </RelativeLayout> </RelativeLayout> </ScrollView> 

Я извлекаю записи из базы данных, и для каждой записи мне нужно разместить версию раздела «добавить аватар пользователя», как показано выше. Я бы хотел сделать 5, а затем перевернуть в новую строку.

Моя первоначальная идея заключалась в том, чтобы использовать надувной макет и добавлять представления программно, используя RelativeLayout.LayoutParams для установки значений layout_toRightOf.

Однако должен быть более простой способ. Я видел множество приложений, используя метафору «книжная полка».

Есть несколько вариантов, о которых я могу думать.

  1. Вместо использования относительной компоновки, почему бы не использовать LinearLayouts с горизонтальным атрибутом?
  2. Использование TableLayout, похожего на LinearLayout
  3. Используйте ListView с пользовательским адаптером, чтобы заполнить пять «Добавить пользователя Аватар» в ListRow

Выделение взглядов программно довольно просто. Я делаю это для всех своих действий / представлений. Я обожаю концепцию XML-макета Android, но обнаруживаю, что, как только представления становятся вообще динамическими на основе внешних данных (например, вашей базы данных), он становится слишком сложным.

Я выбираю, каков мой внешний вид, а затем создавайте экземпляр этого макета в XML. Затем в моей работе я нахожу внешний макет, используя обычную находку по вызову id, а затем использую последовательность вызовов метода add (View) для добавления динамически созданных представлений или макетов по мере необходимости.

Вам нужно будет учитывать различные ориентации экрана, плотности пикселей и размеры. Device Independent Pixels станет вашим другом. Например, чтобы создать представление изображения, вы должны загрузить растровое изображение, выяснить, сколько его изменить (при необходимости), а затем установить его как готовый для нового экземпляра ImageView, который затем добавить в макет.

Похоже, что ваш внешний макет будет иметь вид прокрутки с вертикальным линейным расположением внутри, который затем имеет горизонтальную компоновку для каждой «полки», которая затем имеет до пяти видов изображения для каждой «книги»,