android如何使用layout_height =“match_parent”将Imagebutton置于右侧

时间:2012-11-20 12:07:20

标签: android android-layout android-linearlayout

我想在2 EditText右侧有一个ImageButton

我试过了

RelativeLayout:但ImageView layout_height="match_parent"不起作用

LinearLayout:但是无法将按钮移到右侧,而不会被EditText推出。 LinearLayout的LayoutDirection="rtl"可能有效,但它不再存在

编辑:

我不想在宽度/高度

中使用特定值

我有这个我现在把高度90dp,但我不想要那里

<RelativeLayout
    android:id="@+id/login_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp" >

    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/username"
        android:layout_toLeftOf="@id/login"
        android:inputType="text"
        android:gravity="center_horizontal" />

    <EditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/password"
        android:layout_below="@id/username"
        android:layout_toLeftOf="@id/login"
        android:inputType="textPassword"
        android:gravity="center_horizontal" />

    <!-- TODO: FIX android:layout_height="match_parent" -->
    <ImageButton
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="90dp"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:contentDescription="@string/login"
        android:scaleType="fitCenter"
        android:src="@drawable/login_button" />

</RelativeLayout>  

2 个答案:

答案 0 :(得分:1)

您可以使用以下方法之一:

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <EditText
            android:id="@+id/edtxt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="textNoSuggestions" />

        <ImageButton
            android:id="@+id/imgv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/edtxt"
            android:contentDescription="@string/saveBtn"
            android:src="@drawable/ic_launcher" />
    </RelativeLayout>

OR

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:orientation="horizontal"
        android:weightSum="2" >

        <EditText
            android:id="@+id/edt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            />

        <ImageButton
            android:id="@+id/img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
           android:src="@drawable/ic_launcher" />
    </LinearLayout>

编辑:

我更新了你的代码。检查一下。它在我的模拟器中显示你想要的输出。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/login_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp" >

    <ImageButton
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"

        android:contentDescription="@string/username"
        android:src="@drawable/ic_launcher" />


    <EditText
        android:id="@+id/uname"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/login"
        android:gravity="center_horizontal"
        android:hint="@string/username"
        android:inputType="text" />

    <EditText
        android:id="@+id/password"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"

      android:layout_below="@id/uname"
        android:layout_toLeftOf="@id/login"
        android:gravity="center_horizontal"
        android:hint="@string/password"
        android:inputType="textPassword" />

</RelativeLayout>

输出:

Screenshot of output

答案 1 :(得分:0)

你需要像下面这样的smthg吗?

enter image description here

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mainscreen"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editText2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" />

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

        <EditText
            android:id="@+id/editText1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" >

            <requestFocus />
        </EditText>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editText2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" >

            <requestFocus />
        </EditText>

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


</LinearLayout>