无法正确地将ScrollView中的按钮居中

时间:2013-03-04 20:20:34

标签: android scrollview center locked

我看到这个问题无处不在,但我认为每个案例都有自己的解决方案。我有这个:

<HorizontalScrollView
    android:id="@+id/MenuScroll"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true"
    android:scrollbars="none" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="48dp"
        android:orientation="horizontal"
            android:layout_gravity="center"
        android:padding="0dp" >

        <Button
            android:layout_width="150dp"
            android:layout_height="fill_parent" />

        <Button
            android:layout_width="150dp"
            android:layout_height="fill_parent" />

        <Button
            android:layout_width="150dp"
            android:layout_height="fill_parent" />

        <Button
            android:layout_width="150dp"
            android:layout_height="fill_parent" />

        <Button
            android:layout_width="150dp"
            android:layout_height="fill_parent" />

    </LinearLayout>
</HorizontalScrollView>

我假装LinearLayout位于HorizontalScrollView内。它居中(我看到半按钮 - 按钮 - 半按钮)但我无法滚动到第一个按钮。看起来隐藏在左侧的内容占用的空间在右侧添加,并且在HorizontalScrollView之后添加了一些空格。 enter image description here

是否有任何解决方案,即使我必须动态地进行?

1 个答案:

答案 0 :(得分:1)

我有同样的问题,为了避免它只是删除

 android:layout_gravity="center"

来自

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="48dp"
    android:orientation="horizontal"
        android:layout_gravity="center"
    android:padding="0dp" >

您可以在创建布局视图时添加计时器以正确滚动。如果您不添加计时器,则由于未创建视图,它将不会滚动。你不能滚动它看不见的东西

 new Timer().schedule(new TimerTask () {
        @Override
        public void run() {
            //SOME SCROLLING FUNCTION
            }}, 50);