如何使多行EditText使用Linear或RelativeLayout的剩余空间

时间:2014-11-23 19:20:48

标签: android android-layout

我知道layout_weight和其他技巧,但当我的EditText变得太大而无法放在一行上时会出现问题。

假设我有一个复选框,editText和一个箭头imageView,我想要这样的东西,复选框左对齐,箭头右对齐:

*   |Some very long text that  |  >
    |wraps                     |

但是我的EditText会滚动而不是包装。

我愿意使用RelativeLayouts或任何其他布局,我宁愿避免嵌套太多布局。

编辑:我现在的XML如下所示。我已经尝试过使用RelativeLayout但没有成功。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<Checkbox android:id="@+id/left"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="0"/>
<EditText
    android:id="@+id/edit_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:focusable="false"
    android:background="@null"
    android:imeOptions="flagNoExtractUi"
    android:inputType="textImeMultiLine|textCapSentences"
    android:singleLine="false"
    android:textColor="@color/dark_gray"
    android:textColorHint="@color/medium_gray"
    android:layout_weight="1"
    android:drawable="@drawable/check/>
<ImageView
    android:id="@+id/right"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="0"
    android:src="@drawable/arrow" />
</LinearLayout>

1 个答案:

答案 0 :(得分:0)

我认为这个想法会起作用:

使用RelativeLayout,将checkBox设置为alignParentLeft,将arrow设置为alignParentRight并在EditText上设置以下属性:

将其宽度设置为match_parent,将height设置为wrap_content,toRightOf checkBox和toLeftOf arrow。

也许这会解决您的问题

我在说这个:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="8dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="8dp" >

<Checkbox
    android:id="@+id/left"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
   />

<EditText
    android:id="@+id/edit_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/right"
    android:layout_toRightOf="@+id/left"
    android:inputType="textMultiLine" 
    />

<ImageView
    android:id="@+id/right"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:src="@drawable/ic_launcher" />

</RelativeLayout>