Android 在相对布局的元素之间划分屏幕宽度?

Android 在相对布局的元素之间划分屏幕宽度?,android,android-layout,android-relativelayout,Android,Android Layout,Android Relativelayout,假设我有一个按钮和一个EditText,在同一高度(屏幕底部)对齐,共享屏幕宽度。我希望按钮只占用它需要的空间,编辑文本覆盖其余的宽度 到目前为止,我一直在使用linearLayout,在这种情况下,我可以将这两个元素放在水平线性布局中,将editText的权重设置为1,并使用按钮包装内容,这样就可以了 但是,我无法使用相对布局复制这种行为。我可以将editText放在父级的底部,然后将按钮设置为右侧,但我不知道如何使editText填充按钮空间的其余宽度 正确的方法是什么 编辑:这是我到目前为

假设我有一个按钮和一个EditText,在同一高度(屏幕底部)对齐,共享屏幕宽度。我希望按钮只占用它需要的空间,编辑文本覆盖其余的宽度

到目前为止,我一直在使用linearLayout,在这种情况下,我可以将这两个元素放在水平线性布局中,将editText的权重设置为1,并使用按钮包装内容,这样就可以了

但是,我无法使用相对布局复制这种行为。我可以将editText放在父级的底部,然后将按钮设置为右侧,但我不知道如何使editText填充按钮空间的其余宽度

正确的方法是什么

编辑:这是我到目前为止得到的:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">



    <EditText
        android:id="@+id/edittext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:hint="@string/editText_Hint"
        android:inputType="number" />


    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignRight="@id/edittext"
        android:onClick="sendAnswer"
        android:text="@string/button_text" />

</RelativeLayout>

我想复制这种行为:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

   /*other stuff here*/

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">


        <EditText
            android:id="@+id/edittext"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:hint="@string/editText_Hint"
            android:inputType="number"
            android:layout_weight="1"
           />


        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button_text"
            android:onClick="sendAnswer"/>
    </LinearLayout>
</LinearLayout>

/*这里还有其他东西*/

试试这个,对齐按钮右侧的按钮,并将
edittext
宽度设置为
match\u parent
对我来说很好

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/button1"
        android:ems="10" >

        <requestFocus />
    </EditText>
</RelativeLayout>

我自己找到了解决办法。技巧是将两个元素都设置在底部,然后将编辑文本设置为宽度:0dp、alignParentLeft和toLeftOF按钮(不是对齐按钮的左侧,而是toLeftOF按钮)。按钮应与右侧和底部对齐

最后的代码如下所示:

<EditText
        android:id="@+id/edittext"

        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_toLeftOf="@id/button"
        android:layout_alignParentLeft="true"
        android:hint="@string/editText_Hint"
        android:inputType="number"
        android:layout_width="0dp"
       >

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:onClick="sendAnswer"
        android:text="@string/button_text" />


请将您的xmlcode@Dilavar编辑后,代码现在包括在内。按钮首先(在XML中)宽度换行内容,父项的底部和右侧(对齐)。下一步编辑左下角的父项(对齐)和按钮宽度的右侧0dp@kace91你能把你需要的图片放进去吗?这是我目前为止得到的最好的解决方案,但我还是不喜欢这样,正如你所说,编辑文本似乎填满了与按钮重叠的宽度。我可以通过反复试验手动更改布局:边距,直到它与按钮的宽度匹配为止,但必须有更好的方法(另外,当按钮的宽度在不同语言上发生变化时,硬编码的数字可能不起作用)@kace91查看我的更新。如果您可以使用嵌套在相对布局中的线性布局,这将非常有用。这个实现不使用硬编码的值,我知道这是可行的,但我试图避免嵌套布局,因为我读到它意味着性能受到影响。不管怎样,我找到了一个不嵌套的解决方案,我把它作为一个单独的答案发布了出来,以备您检查。无论如何,谢谢你的帮助!
<EditText
        android:id="@+id/edittext"

        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_toLeftOf="@id/button"
        android:layout_alignParentLeft="true"
        android:hint="@string/editText_Hint"
        android:inputType="number"
        android:layout_width="0dp"
       >

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:onClick="sendAnswer"
        android:text="@string/button_text" />