我希望ScrollView能够填充整个屏幕,并且相对布局要么以ScrollView为中心,要么内容居中,要么填充ScrollView并使其内容居中。如果应用程序在小屏幕上运行,则scrollView就在那里。
我只使用RelativeLayout作为根实现了效果,但是当我将scrollView添加为包装器时,我无法将其置于中心,而RelativeLayout只是添加到顶部。我试过检查RelativeLayout的layout_height,但这也不起作用,只是给了我一个警告。
有趣的是它在Eclipse中的图形布局上看起来很好。
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fillViewport="true"
android:gravity="center" >
....
答案 0 :(得分:4)
经过多次努力,这才是最终奏效的。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
tools:context=".MainActivity" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" >
答案 1 :(得分:3)
您始终可以将RelativeLayout
放在LinearLayout中,以允许它居中。
您遇到的问题是ScrollView
没有重力属性,因此您需要ScrollView
内的另一个接受重力的布局。
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
android:gravity="center">
<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fillViewport="true"
android:gravity="center" >
</RelativeLayout>
</LinearLayout>
</ScrollView>
答案 2 :(得分:0)
尝试将ScrollView
和RelativeLayout
的高度和宽度更改为fill_parent
。如果这不起作用,请发布您的整个xml文件。
答案 3 :(得分:0)
将另一个rootview
,RelativeLayout
或LinearLayout,
放在现有的RelativeLayout中,并将这些属性添加到新的属性中。
android:layout_height="wrap_content"
android:layout_centerVertical="true"