У меня есть Listview внутри HorizontalScrollView. В списке есть пути к файлам, а горизонтальное представление прокрутки предназначено для устранения необходимости обертывания более длинных путей.Android ListView отсекает элементы, более широкие, чем первый элемент
Все работает в соответствии с пожеланиями, за исключением того, что все элементы, длина которых превышает первый элемент в списке, сокращаются на длину первого элемента (независимо от ширины первого элемента, ни один из других элементов не будет прокрутите эту ширину).
Вот часть шаблона, который дает мне неприятности:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/layoutListView"
android:orientation="vertical"
android:layout_below="@+id/spFileTypes">
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1">
<ListView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/lvItems"/>
</HorizontalScrollView>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text=""
android:id="@+id/tvStatus"/>
</LinearLayout>
Вот скриншот выпуска:
Изображение прокручивается весь путь к правильно. Третий элемент отключает «.php». Я пробовал это с длинными и короткими именами файлов, списками многих (верхние двойные цифры) и списками с несколькими, в каждом случае, кажется, что ограничение ширины зависит от ширины первого элемента.
Всякий раз, когда списки меняются, он всегда ограничивает свою ширину тем, что принадлежит первому элементу.
Желаемое поведение должно соответствовать ширине самого широкого элемента.
Я разобрался с моим сердцем, вырыл официальную документацию, и я в тупике. Любая помощь очень ценится :)
Ваш HorizontalScrollView имеет layout_weight = 1, а второй ребенок в LinearLayout этого не делает. Вы должны добавить вес в TextView или удалить его из ListView. Надеюсь, это поможет. –
Я запомню это, но TextView отображается в макете точно по своему желанию (скриншот обрезается только для того, чтобы показать поведение обрезания конкретно) – BMB