强制Horizo​​ntalScrollView占据全宽和中心子项

时间:2013-02-11 20:33:12

标签: android android-layout

我希望水平滚动视图占据屏幕的整个宽度并使其子视图居中。到目前为止,我最终只是把它包裹起来,一切都是左对齐的。我的观点如下:

<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似乎什么都不做,并且应用gravities seeems没有效果,可能是因为它包装内容,即使我将fill_parent设置为宽度。

1 个答案:

答案 0 :(得分:-2)

我弄明白了我的问题,结果与xml无关。事实上,我正在膨胀Horizo​​ntalScrollView的内容。之后,如果您希望父级正确填充,则需要通过request_layout强制它再次布局。否则它将无法获得正确的大小。