Android 强制HorizontalScrollView占据全部宽度和中心子对象
我想要一个水平滚动视图占据整个屏幕的宽度,并使其子视图居中。到目前为止,我只是用它来包装孩子,所有的东西都是左对齐的。我的观点是这样的:Android 强制HorizontalScrollView占据全部宽度和中心子对象,android,android-layout,Android,Android Layout,我想要一个水平滚动视图占据整个屏幕的宽度,并使其子视图居中。到目前为止,我只是用它来包装孩子,所有的东西都是左对齐的。我的观点是这样的: <HorizontalScrollView android:id="@+id/mainMenu" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal
<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>
在里面,我们膨胀的东西看起来像这样:
<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\u parent设置为宽度。我解决了问题,结果它与xml无关。事实上,我是在夸大水平滚动视图的内容。之后,如果您想让您的父项正确填充父项,则需要通过request\u layout再次强制其布局。否则它将无法获得正确的大小。您能给我们一个屏幕截图,看看它在hierachyviewer中的外观吗?