如何将编辑和按钮带到父视图的中心

时间:2013-05-07 14:36:40

标签: android xml

以下是我的xml:

<RelativeLayout android:id="@+id/RelativeLayout01"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:orientation="horizontal" 
android:layout_height="fill_parent"> 

<LinearLayout android:id="@+id/LinearLayout01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true" >

        <EditText android:id="@+id/edit_message"
            android:layout_weight="5"
            android:layout_width="0dip"
            android:layout_height="wrap_content"        
            android:hint="@string/edit_message" />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button_search"
            android:onClick="searchUsingTag" />   

</LinearLayout>     

</RelativeLayout>

但这不是我想要的。我想要像谷歌搜索这样的东西。有一个很长的编辑框,然后是一个小按钮。

enter image description here

3 个答案:

答案 0 :(得分:0)

如果您想使用 LinearLayout 中的layout_weight属性,则必须将此布局设置为与其父级匹配:

    <LinearLayout android:id="@+id/LinearLayout01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" >
              ...

然后你可以尝试使用重量,为孩子设置不同的尺寸。 另外:你必须在每个子节点上设置一个权重,在你的例子中,按下父节点之外的按钮,因为按钮没有设置权重。

答案 1 :(得分:0)

更改线性布局的宽度以填充父级并尝试权重,直到获得所需的效果。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/RelativeLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/LinearLayout01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:weightSum="5" >

        <EditText
        android:id="@+id/edit_message"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="4" />
    <Button
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="searchUsingTag"
        android:text="@string/button_search" />
    </LinearLayout>

</RelativeLayout>

答案 2 :(得分:0)

正如我在评论中所说,你需要设置:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/RelativeLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/LinearLayout02"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:weightSum="5" >

        <EditText
            android:id="@+id/edit_message"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="4" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/LinearLayout03"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:weightSum="5" >
        <Button
            android:id="@+id/Button01"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="searchUsingTag"
            android:text="@string/button_search" />
    </LinearLayout>

</RelativeLayout>

每个元素分为不同的布局。还要记得添加所有 IDS (您忘记添加按钮ID)并将EditText宽度设置为fill_parent,然后获得EditText之类的“Google”搜索字段或设置自己的大小。

<强> SUGGEST

就个人而言,我更倾向于使用LinearLayout作为主要布局来使用RelativeLayout。这是一个建议。如果您更喜欢它,请不要介意。