Horizo​​ntalScrollView不完全向右滚动

时间:2014-07-31 12:59:50

标签: android android-layout android-scrollview

我目前的实施

我有一个HorizontalScrollView,我用XML创建了一个LinearLayout个孩子。我在下面添加了这段代码。

有两个LinearLayout个容器,其ID为group_onegroup_two,并且这些容器在运行时以编程方式填充。

我还会在运行时修复HorizontalScrollView的宽度,具体取决于我要插入的View个对象的数量。

此解决方案非常适合儿童适合HorizontalScrollView而无需滚动。

问题

一旦我需要滚动(在固定宽度HorizontalScrollView内可以显示的孩子数量超过),滚动条将不会一直向右移动,即使我可以看到孩子布局的宽度正确,我可以看到滚动条不会再进一步​​了。

我的问题

为什么滚动条会向右移动有限制?

我的代码

Horizo​​ntalScrollView XML

<!-- THIS IS WHERE THE PLUGIN BUTTONS ARE HOUSED -->
    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="horizontal"
        android:id="@+id/map_plugin_scroll_view"
        android:background="@color/map_plugin_background">

    <!-- Enclosing box to layout the two groups.-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_margin="8dp"
        android:id="@+id/group_container">

        <!-- These layouts contain the map plugins. -->
        <LinearLayout
            android:id="@+id/group_one"
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="4dp"/>

        <LinearLayout
            android:id="@+id/group_two"
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"/>

    </LinearLayout>

</HorizontalScrollView>

发生了什么

这是左侧正确滚动的图像。滚动视图的边缘从红色条的右侧开始。注意两者之间的距离。

Correct Scroll Left

这是右侧滚动错误的图像。比较滚动视图边缘与滚动条停止位置之间的距离。

Incorrect Scroll Right

当我在两端滚动时,这就是我想要的样子。

Correct Layout

2 个答案:

答案 0 :(得分:7)

我已经玩了一段时间了,终于找到了解决方案。

我尝试将左右边距添加到ID为LinearLayout的{​​{1}}。但由于某种原因,group_container并不尊重这一点,这就是我看到这个问题的原因。

相反,我将左右边距添加到HorizontalScrollViewgroup_one group_two。现在LinearLayouts尊重这些并且它按照我的预期运行。这是我修改过的代码。

HorizontalScrollView

答案 1 :(得分:0)

将padding设置为滚动视图,如下所示:

android:paddingRight="20dp"