Пользовательский TextView и ListView в сравнении с предложениями GridView

#android

#Android

Вопрос:

У меня есть приложение, которое является приложением для управления задачами. Приложение использует вкладки для разделения функций задач, календаря и заметок. Основным представлением пользователя является представление задачи, которое в настоящее время реализовано в виде списка с классом ListAdaptor для размещения всех виджетов в одной строке.

Каждая строка содержит следующие элементы:

  • Счетчик, позволяющий использовать для выбора приоритета для задачи (т. Е. A1, A2 .. B1 .. D4)
  • TextView для ввода описания задач
  • Флажок для пользователя, указывающий, выполнена ли задача
  • TextView для необязательного поля даты
  • Кнопка для прикрепления примечания к задаче

На телефоне вышеуказанные элементы занимают слишком много места. Например, компонент spinner занимает место для отображения значения, а также выпадающего меню. Флажок и кнопка также слишком велики для просмотра списка на устройстве, таком как телефон.

Вот мои вопросы:

  1. Пользовательский счетчик. Что мне действительно нужно в приложении, так это простое текстовое поле, которое показывает приоритет пользователей для задачи с возможностью щелкнуть по тексту и выбрать один из вариантов, похожих на компонент spinner. Должен ли я расширить компонент TextView для этого или можно изменить внешний вид счетчика, чтобы он функционировал как счетчик, но отображался как текстовое поле?

  2. Сокращение компонентов. Возможно ли уменьшить стандартные компоненты Android, такие как счетчик, флажок и кнопка, чтобы они лучше помещались в строку ограниченного размера? Должен ли я расширять компоненты для этого или есть их атрибуты, которые могут сделать это проще?

  3. Наконец, я реализовал эту функциональность с помощью ListView. Было бы проще управлять ячейками в каждой строке, используя GridView вместо ListView? Каковы преимущества и недостатки использования GridView по сравнению с ListView?

Заранее спасибо за совет по вышеуказанным вопросам.

Бретт

Ответ №1:

  1. Почему бы вам не добавить прослушиватель кликов в свой TextView и не показать, например, контекстное меню со всеми вашими элементами при нажатии на TextView.

  2. Вы можете ограничить размер компонентов, установив для их ширины / высоты желаемое значение. Также установите размер текста, отступы и поля компонентов на минимальное значение. Обратите внимание, что фон компонентов также может определять отступы, поэтому определите свой собственный фон, который можно рисовать без отступов.

  3. Различий не так много. Вы предоставите ListAdapter для обоих. Я бы сказал, что GridView, скорее всего, используется для галерей, ListView используется для задач, подобных вашей. ListView также дает вам больше контроля над своими элементами.

Комментарии:

1. Спасибо за быстрый ответ. Я добавлю прослушиватель кликов в TextView с меню. Все ответы были очень полезны.