-1

我希望水平滚动视图占据屏幕的整个宽度并使其子视图居中。到目前为止,我最终只是将孩子们包裹起来,一切都保持对齐。我的观点是这样的:

<HorizontalScrollView
    android:id="@+id/mainMenu"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="#CD000000"
    android:fillViewport="true"
    android:gravity="center_horizontal"
    android:scrollbars="none" >

</HorizontalScrollView>

在里面我们膨胀了一些看起来像这样的东西:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="horizontal">

<LinearLayout
      android:id="@+id/mode_panzoom"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:orientation="vertical"
      android:paddingBottom="5dip"
      android:paddingLeft="5dip"
      android:paddingRight="5dip"
      android:minWidth="75dip"
      android:gravity="center_horizontal">

    <ImageView
            android:src="@drawable/ic_pan"
            android:layout_width="25dip"
            android:layout_height="wrap_content"
            android:text="@string/mode_panzoom"
            android:scaleType="centerInside"/>

</LinearLayout>

<LinearLayout
        android:id="@+id/mode_annotate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingBottom="5dip"
        android:paddingLeft="5dip"
        android:paddingRight="5dip"
        android:minWidth="75dip"
        android:gravity="center_horizontal">
    <ImageView
            android:src="@drawable/ic_annotate"
            android:layout_width="25dip"
            android:layout_height="wrap_content"
            android:text="@string/mode_panzoom"/>

</LinearLayout>

<LinearLayout
        android:id="@+id/mode_measure"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingBottom="5dip"
        android:paddingLeft="5dip"
        android:paddingRight="5dip"
        android:minWidth="75dip"
        android:gravity="center_horizontal">
    <ImageView
            android:src="@drawable/ic_measure"
            android:layout_width="25dip"
            android:layout_height="wrap_content"
            android:text="@string/mode_panzoom"
            android:gravity="center"/>

</LinearLayout>

fillviewport 似乎什么都不做,并且应用重力似乎没有效果,可能是因为它的包装内容,即使我将 fill_parent 设置为宽度。

4

1 回答 1

-2

我发现了我的问题,它最终与 xml 无关。事实是我夸大了 Horizo​​ntalScrollView 的内容。之后,如果你想让你的父母正确地填充_parent,你需要通过 request_layout 强制它再次布局。否则它不会得到正确的尺寸。

于 2013-02-11T21:28:52.200 回答