我正在尝试使用HorizontalScrollView
创建一种图库。
我希望有一个垂直居中的按钮,但即使我在我的按钮中指定gravity
为center_vertical
,也无法使其工作,因为它始终贴在顶部。
这是我的布局:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true">
<LinearLayout
android:id="@+id/container_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<HorizontalScrollView
android:id="@+id/horizontal_scroll_view"
android:layout_width="match_parent"
android:layout_height="@dimen/cameraPlaceholderHeight">
<LinearLayout
android:id="@+id/horizontal_scroll_view_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/greyBackgroundColor"
android:gravity="start|center_vertical"
android:orientation="horizontal">
<Button
android:id="@+id/camera_button"
android:layout_width="@dimen/take_picture_size"
android:layout_height="@dimen/take_picture_size"
android:layout_gravity="center_vertical"
android:background="@drawable/take_picture_rounded_button"
android:gravity="center_vertical"
android:src="@drawable/syi_camera_active"/>
</LinearLayout>
</HorizontalScrollView>
提前致谢!
答案 0 :(得分:0)
在HorizontalScrollView内的LinearLayout上,使用
android:layout_gravity="center_vertical"
而不是
android:gravity="center_vertical"
答案 1 :(得分:0)
模拟屏幕真的有助于找出你想要的东西。无论如何,从您的布局我可以理解,您需要在HorizontalScrollView
的中心放置一个相机按钮。
在这种情况下,您可能会考虑使用RelativeLayout
包装水平滚动视图,如下例所示
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<HorizontalScrollView
android:id="@+id/horizontal_scroll_view"
android:layout_width="match_parent"
android:layout_height="@dimen/activity_horizontal_margin">
<!-- Other items here -->
</HorizontalScrollView>
<Button
android:id="@+id/camera_button"
android:layout_width="@dimen/activity_horizontal_margin"
android:layout_height="@dimen/activity_horizontal_margin"
android:layout_centerInParent="true"
android:background="@drawable/com_facebook_button_blue"
android:gravity="center_vertical"
android:src="@drawable/com_facebook_button_blue" />
</RelativeLayout>
答案 2 :(得分:0)
请在您的两个滚动视图中添加android:fillViewport="true"
答案 3 :(得分:0)
在HorizontalScrollView中设置LinearLayout,如下所示:
<HorizontalScrollView
android:id="@+id/horizontal_scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/horizontal_scroll_view_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="start|center_vertical"
android:orientation="horizontal">
<Button
android:text="Button"
android:id="@+id/camera_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"/>
</LinearLayout>
</HorizontalScrollView>
结果:
BTW:你可以摆脱按钮中的android:layout_gravity =“center_vertical”属性。