#android
Вопрос:
Я пытаюсь заставить a HorizontalScrollView
вести себя как a LinearLayout
с точки зрения растягивания его детей, если содержимое HorizontalScrollView
недостаточно широкое для прокрутки.
В приведенном ниже макете элементы расположены с промежутками между ними, что именно так и должно выглядеть, если экран широкий. Но в этом макете нет прокрутки, если ширина экрана слишком мала или шрифт слишком большой.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@ id/appearance_row_0"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginVertical="12dp"
android:orientation="horizontal" >
<include layout="@layout/appearance_fragment_theme_button"/>
<include layout="@layout/appearance_fragment_divider"/>
<include layout="@layout/appearance_fragment_theme_button"/>
<include layout="@layout/appearance_fragment_divider"/>
<include layout="@layout/appearance_fragment_theme_button"/>
<include layout="@layout/appearance_fragment_divider"/>
<include layout="@layout/appearance_fragment_theme_button"/>
</LinearLayout>
</LinearLayout>
При расположении ниже возможна прокрутка, но элементы размещаются в центре, без какого-либо пространства между элементами.
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@ id/appearance_row_0"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginVertical="12dp"
android:orientation="horizontal" >
<include layout="@layout/appearance_fragment_theme_button"/>
<include layout="@layout/appearance_fragment_divider"/>
<include layout="@layout/appearance_fragment_theme_button"/>
<include layout="@layout/appearance_fragment_divider"/>
<include layout="@layout/appearance_fragment_theme_button"/>
<include layout="@layout/appearance_fragment_divider"/>
<include layout="@layout/appearance_fragment_theme_button"/>
</LinearLayout>
</HorizontalScrollView>
Есть ли способ объединить оба поведения, а именно разместить пространство между элементами, если экран достаточно широк для размещения содержимого, и прокручивать, если экран недостаточно широк?
Спасибо.
Комментарии:
1. Почему бы вам не использовать
space
фиксированное пространство между вашими предметами? в этом случае у вас всегда будет одинаковое пространство между вашими предметами. Если экран достаточно широкий, все элементы отображаются без необходимости прокрутки. В противном случае,HorizontalScrollView
позволяет пользователю прокручивать. Это то, что ты ищешь?2. Я мог бы добиться этого, используя представление переработчика. Поскольку в вопросе не было представления переработчика, разместите ссылку на GitHub для реализации, а не ответ здесь — github.com/Abhimanyu14/auto-spacing-horizontal-scroll-view . P. S: Это работает только в том случае, если размер дочерних представлений одинаков и фиксирован. Дайте мне знать, подходит ли это для вашей цели.