将块放在ScrollView的中心

时间:2012-08-29 12:36:10

标签: android android-layout scrollview layout-gravity

我有一个ScrollView,其中包含一个子元素(由LinearLayout包装的元素)。有时候这个孩子的身高是视口高度的一半,有时它会更大。

这里布局:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingBottom="10dp"
    android:paddingTop="10dp"
    android:background="@color/some_background">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:background="@drawable/fond_consult"
        android:orientation="vertical"
        android:weightSum="2">

        ... Some TextViews and ImageViews...

    </LinearLayout>
</ScrollView>

当屏幕大小和密度较低时,子项在ScrollView中正确显示,但在HDPI和XHDPI等较大屏幕上呈现此活动时,内容将放置在ScrollView的顶部。

有没有办法为ScrollView的唯一子项设置重力,或者如果设备屏幕大于儿童的高度,我是否必须删除scrollView?

2 个答案:

答案 0 :(得分:13)

您可以尝试将android:layout_gravity="center"添加到ScrollView,其layout_widthlayout_heightwrap_content。由于ScrollView将自己管理为子布局的高度和宽度。

答案 1 :(得分:1)

在正常情况下,ScrollView仅占用所需的最小空间,因此垂直对齐的问题(在垂直滚动的情况下)根本不会出现。您可以浏览http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/中的文章。它可能对你有帮助。