2010-08-02 2 views
1

У меня есть следующий узел в моем макете XML:Добавление полосы прокрутки в пользовательскую группу ViewGroup? не

<com.x.y.view.TagLayout android:id="@+id/TagLayout" 
android:layout_width="fill_parent" android:layout_height="170dip" /> 

TagLayout это класс, который расширяет ViewGroup, и в основном имеет кучу кнопок с текстом (пользовательского объекта, которые действуют как метки, но это ни здесь или там).

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

Если я завершаю вышеуказанное в ScrollView, макет никогда не делает. Я попытался добавить атрибуты android: isScrollContainer и android: полосы прокрутки, но это ничего не меняет. Здесь что-то не хватает?

Я также должен добавить, что TagLayout переопределяет событие onMeasure(). Думаю, мне нужно реализовать механизм прокрутки ...?

ответ

1

Ну, я в основном получил его. Мне пришлось на самом деле обернуть узел выше с помощью LinearLayout, а затем обернуть его вокруг ScrollView. Отступ немного немного (последний пункт вырезается из представления), но он находится на правильном пути.

+0

Вы решаете эту проблему? – Natali

+0

Пожалуйста, поделитесь своим кодом, если это возможно. Я хотел бы взглянуть, потому что я столкнулся с одной и той же проблемой. Черт возьми, если вы это сделаете. заранее спасибо – user1201239

1

Вы можете добавить прокрутку к своему производителю ViewGroup, не упаковывая его в несколько других макетов и представлений (на самом деле, лучше не обертывать его, если вам не нужно ... наличие иерархии иерархии слоев намного лучше для производительности). Просто сделайте все, что описано в этом question, и убедитесь, что вы добавили setWillNotDraw(false); в свой собственный конструктор ViewGroup, как описано в этом answer.

Смежные вопросы