我在 HorizontalScrollView 中有一个 LinearLayout(带有 7 个 TextView 元素)。HorizontalScrollView 设置为 fillViewport。我希望一次只有 4 个 TextView 元素可见。用户可以滚动查看其余部分。
案例 1: 我可以使用 layout_weight 获得所需的布局,但是我无法滚动,如附件代码所示。我假设滚动不起作用,因为权重是在 GUI 渲染之后计算的,因此 HorizontalScrollLayout 的宽度不会改变。是对的吗?
案例2: 如果我固定宽度,例如“60dp”,那么它会根据需要显示并且我也可以滚动。但是,这不适用于其他屏幕尺寸。
如何以适用于不同屏幕尺寸的方式实现此效果。
这是案例 1的代码。
布局:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="7">
<TextView
style="@style/ViewStyle"
android:text="1" />
<TextView
style="@style/ViewStyle"
android:text="2" />
<TextView
style="@style/ViewStyle"
android:text="3" />
<TextView
style="@style/ViewStyle"
android:text="4" />
<TextView
style="@style/ViewStyle"
android:text="5" />
<TextView
style="@style/ViewStyle"
android:text="6" />
<TextView
style="@style/ViewStyle"
android:text="7" />
</LinearLayout>
风格:
<style name="ViewStyle">
<item name="android:layout_weight">1</item>
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">60dp</item>
<item name="android:layout_centerVertical">true</item>
<item name="android:layout_centerHorizontal">true</item>
<item name="android:gravity">center</item>
<item name="android:textSize">10sp</item>
<item name="android:textColor">@color/white</item>
</style>