У меня есть следующий node в моем XML-макете:
<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(). Наверное, мне нужно реализовать механизм прокрутки...?
Ну, я в основном получил его. Мне пришлось на самом деле обернуть node с помощью LinearLayout, а затем обернуть ЭТО вокруг ScrollView. Заполнение немного (последний элемент вырезается из представления), но он находится на правильном пути.
Вы можете добавить прокрутку к своему пользовательскому ViewGroup
, не обернув его в несколько других макетов и представлений (на самом деле лучше не обертывать его, если вам не нужно... иметь иерархию иерархии слоев намного лучше для представление). Просто сделайте все, что описано в этом вопросе , и убедитесь, что вы добавили setWillNotDraw(false);
в свой собственный конструктор ViewGroup
, как описано в этом ответ.