группировка текстов плюс изображения + круглые края в Android - PullRequest
0 голосов
/ 12 октября 2010

меня попросили сделать в Android вид, который группирует несколько элементов, таких как флажки или текстовые представления, в вертикальные строки, разделенные прозрачными разделителями, в то время как фон имеет определенный альфа-уровень, а края округлены.

Я подумал о двух решениях и надеюсь получить отзывы о хороших \ плохих или других решениях, если вы их получили.

  1. просто используйте линейный макет regualr, но у вас есть один стиль A, который использует патч 9 какфон, включает отступы, поля и все, что мне нужно, чтобы это выглядело так, как я хочу.Затем я создаю другой стиль A.up и A.down, который представляет самый верхний и самый нижний элементы, которые будут использовать разные 9-траектории с закругленными углами.
  2. наследовать от линейного макета, добавив onMeasure и layoutChildren.всем детям какое-то пространство между ними, я могу создать для него новый атрибут, который можно настроить в стиле.я могу переопределить dispatchDraw, чтобы нарисовать фон для каждого вида перед его отрисовкой, чтобы я мог рисовать свои круглые границы, мое единственное требование будет, чтобы каждый вид, добавленный в этот макет, был с прозрачным фоном.

Так что ты думаешь?

1 Ответ

0 голосов
/ 16 октября 2010

В конце концов я решил использовать Список с настроенным разделителем.Выглядит хорошо, однако в списке есть очень неприятная ошибка, когда дело доходит до элементов с такими состояниями, как кнопки и интерактивные текстовые представления,

  1. , вы не получаете фокус для элемента и не видите панель орнамента.
  2. Похоже, вы не видите, что евнеты текут к дочерним элементам вида в списке.

Я не знаю, как решить этот вопрос, я видел множествооб этом пишут в списке рассылки Developers, и здесь большинство говорят, что в список не помещаются объекты Statefull.Так что это не может быть решением для меня.Гнездо, которое я попробую, состоит в том, чтобы расширить обычные макеты так, чтобы в их нижней части была полоса, и использовать обычную линейную компоновку с рисованием круглых углов.

...