Android - Button保持重叠的Edittext

时间:2014-05-04 19:41:11

标签: android android-layout android-edittext android-button

我正在创建一个Android应用,其中有一个活动在顶部有EditText,在底部有三个Button。我已将清单中的android:windowSoftInputMode="adjustResize"设置为活动,以便在使用虚拟键盘时自动重新调整大小。但是,当我在EditText中输入长句时,它的大小会增加,并且会低于Button s。我希望EditText仅扩展到3 ButtonActionBar之间的可用空间。

这是发生了什么 -

error_scrennshot

以下是活动的XML代码 -

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#eaeaea"
    tools:context=".AddNoteEditor" >

<EditText
    android:id="@+id/noteEditor"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:background="@drawable/card"
    android:ems="10"
    android:hint="@string/nn"
    android:inputType="textMultiLine"
    android:padding="12.5dp"
    android:singleLine="true"
    android:textSize="19dp" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="onClickAddNote"
    android:text="@string/ok"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true" />

<ToggleButton
    android:id="@+id/highlighter"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button1"
    android:layout_alignBottom="@+id/button1"
    android:layout_toLeftOf="@+id/button2"
    android:layout_toRightOf="@+id/button1"
    android:text="@string/hglt"
    android:textOff="Highlighting Off"
    android:textOn="Highlighting On" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="onClickDiscardNote"
    android:text="@string/cancel"
    android:layout_alignTop="@+id/highlighter"
    android:layout_alignParentRight="true" />

</RelativeLayout>

先谢谢。

2 个答案:

答案 0 :(得分:1)

问题在于相对布局,当文本足够长时,EditText会填充整个可用空间(在此布局中)。结果它也填补了这些按钮下面的空间。

你基本上有两种解决方案。

  1. 为EditText添加一个底部边距,其大小与按钮的高度相等。

  2. 使用线性布局代替相对布局(一个线性布局替换相对布局 - 垂直布局,另一个线性布局 - 水平 - 将这些按钮并排放置)。

答案 1 :(得分:0)

也许你必须尝试将EditText作为可滚动的:

表示水平滚动:

 <EditText
      android:scrollHorizontally="true"
 ../>

用于垂直滚动:

<EditText
     android:scrollbars = "vertical"
../>