0

我想在 ScrollView 中将 RelativeLayout 居中,如下所示: 良好的布局

我只有在使用RelativeLayout时才能实现这种布局。但是由于我还需要使用 ScrollView,所以它搞砸了。然后不知何故android:layout_centerHorizontal="true"不会申请RelativeLayout......输出看起来像这样:

布局不好

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffcc33"
android:paddingLeft="7dp"
android:paddingRight="7dp"
android:paddingTop="10dp"
tools:context=".MainActivity" >

<EditText
    android:id="@+id/search_box"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/search_button"
    android:ems="5"
    android:hint="@string/search_hint" >

    <requestFocus />
</EditText>

<Button
    android:id="@+id/search_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:text="@string/search_button" />

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/search_box"
    android:layout_marginTop="15dp"
     >

<RelativeLayout
    android:layout_width="225dp"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true" >

    <Button
        android:id="@+id/btn_lihatoidud"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:drawableTop="@drawable/lihatoidud"
        android:layout_alignParentTop="true"
        android:text="Lihatoidud"
        android:textSize="18sp" />

    <Button
        android:id="@+id/btn_kypsetised"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btn_lihatoidud"
        android:layout_marginTop="15dp"
        android:background="@android:color/transparent"
        android:drawableTop="@drawable/kypsetised"
        android:text="Küpsetised"
        android:textSize="18sp" />

    <Button
        android:id="@+id/btn_seenetoidud"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btn_kypsetised"
        android:layout_marginTop="15dp"
        android:background="@android:color/transparent"
        android:drawableTop="@drawable/seenetoidud"
        android:text="Seenetoidud"
        android:textSize="18sp" />

    <Button
        android:id="@+id/btn_juustutoidud"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btn_seenetoidud"
        android:layout_marginTop="15dp"
        android:background="@android:color/transparent"
        android:drawableTop="@drawable/juustutoidud"
        android:text="Juustutoidud"
        android:textSize="18sp" />

    <Button
        android:id="@+id/btn_lisandid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btn_juustutoidud"
        android:layout_marginTop="15dp"
        android:background="@android:color/transparent"
        android:drawableTop="@drawable/lisandid"
        android:text="Lisandid"
        android:textSize="18sp" />

    <Button
        android:id="@+id/btn_supid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:background="@android:color/transparent"
        android:drawableTop="@drawable/supid"
        android:text="Supid"
        android:textSize="18sp" />

    <Button
        android:id="@+id/btn_voileivad"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/btn_supid"
        android:layout_marginTop="15dp"
        android:background="@android:color/transparent"
        android:drawableTop="@drawable/voileivad"
        android:text="Võileivad"
        android:textSize="18sp" />

    <Button
        android:id="@+id/btn_pudrud"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/btn_voileivad"
        android:layout_marginTop="15dp"
        android:background="@android:color/transparent"
        android:drawableTop="@drawable/pudrud"
        android:text="Pudrud"
        android:textSize="18sp" />

    <Button
        android:id="@+id/btn_joogid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/btn_pudrud"
        android:layout_marginTop="15dp"
        android:background="@android:color/transparent"
        android:drawableTop="@drawable/joogid"
        android:text="Joogid"
        android:textSize="18sp" />

</RelativeLayout>
</ScrollView>

4

3 回答 3

1

评论不允许我格式化...

这是我要做的,将整体布局更改为线性布局,这样您就可以确保它们的 editText 和 button 位于顶部。它看起来像这样......

<LinearLayout
    ...android:orientation="vertical">

    <LinearLayout
         ...android:orentation="horizontal">
         <Edit Text>
         <Button>
     />
     <ScrollView
        ...>
        <RelativeLayout
             ..../>
     />
/>
于 2013-07-01T20:28:43.517 回答
1

除非另有说明,否则AScrollView会将其内容折叠到核心大小。试试看:

  1. 使用ScrollView_ RelativeLayout_

    android:layout_below="@id/search_box"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    
  2. 强制ScrollView不折叠:

    android:fillViewport="true"
    
于 2013-07-01T20:39:17.380 回答
0

你试过使用重力吗?尝试这个:

android:layout_gravity="center"

在您的相对布局内。

android:gravity="center"

也可以工作。我总是忘记哪个做哪个。

于 2013-07-01T17:44:07.227 回答