即使在设置android:layout_width =“match_parent”时,Horizo ntalScrollView的子节点也不匹配它的父视图的宽度

问题描述 投票:0回答:2

我想在包含30个项目的手机屏幕顶部显示一个水平滚动列表,为此我使用的是Horizo​​ntalSayrollView,其中LinearLayout具有“水平”方向,因为它的孩子但是线性布局没有占用整个手机宽度甚至将其宽度设置为“匹配父级”。这是代码:

<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:layout_gravity="center">
        <GridView
            android:id="@+id/gridView_horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:stretchMode="columnWidth" />
    </LinearLayout>
</HorizontalScrollView>

enter image description here

图中显示线性布局不占用整个空间,而LinearLayout仅覆盖部分空间。此外,在将大小更改为固定大小时,我注意到Horizo​​ntalScrollView实际上仅表现为垂直滚动视图。

注意:如果有另一种方法可以显示一个水平的按钮列表,其中30个项目的数字从1到30,请建议。

android android-layout horizontalscrollview
2个回答
1
投票

为了轻松实现这一点,您可以将Recyclerview与Horizo​​ntal Layout Manager一起使用。例如

recycler_view.setLayoutManager(new LinearLayoutManager(MainActivity.this, LinearLayoutManager.HORIZONTAL, false));

0
投票

我不认为你需要一个HorizontalScrollView与嵌套的LinearLayout为你想要达到的目标。如果您的按钮布局相似且按钮的功能也相似,那么简单地使用水平RecyclerView会更好。请参阅此答案以获取帮助https://stackoverflow.com/a/40584425/9119277

© www.soinside.com 2019 - 2024. All rights reserved.