0

我希望 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" >
....
4

4 回答 4

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" >
于 2013-01-31T01:50:46.487 回答
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>
于 2013-01-30T23:50:09.377 回答
0

尝试更改 theScrollViewRelativeLayoutto的高度和宽度fill_parent。如果这不起作用,请发布您的整个 xml 文件。

于 2013-01-30T23:40:59.540 回答
0

将另一个rootviewRelativeLayout或者LinearLayout,放在现有的 RelativeLayout 中,然后将这些属性添加到新的。

android:layout_height="wrap_content" 
android:layout_centerVertical="true"
于 2013-01-31T01:31:17.250 回答