我使用LinearLayout以获得一个行为类似聊天界面的UI(这意味着,在底部,我有一个多行EditText和一个Button(用于发送消息),在它上面是一个listview,显示消息)。
ListView应该占用EditText和Button留下的空闲空间。
现在,我有一个垂直的LinearLayout,它包含一个FrameLayout(包含ListViewes,我同时只显示一个ListView)和一个RelativeLayout(包含EditText和Button)。 我已经在我的FrameLayout和RelativeLayout上加权,以确保Listview几乎占据了所有空间。
现在,它可以工作,但问题是当我关注EditText(为了输入它)时,EditText变得非常小(它只显示一行)。
但是我希望在没有聚焦的时候有一个小的EditText(为了在listview中显示尽可能多的消息)和在我打字时有一个更大的EditText(显示尽可能多的行)。
这是我的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="1dp"
android:paddingLeft="1dp"
android:paddingRight="1dp"
android:paddingTop="1dp"
tools:context=".ChatActivity"
android:background="#f0f4fc"
android:weightSum="100">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="82" >
<ListView
android:id="@+id/chat1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="#b5b5b5"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector"
/>
<ListView
android:id="@+id/chat2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="#b5b5b5"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector"
android:visibility="gone" />
</FrameLayout>
<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="18"
android:background="#f0f4fc"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true" >
<EditText
android:id="@+id/messageBox"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/sendButton"
android:ems="10"
android:gravity="top"
android:hint="@string/enterMessageHere"
android:minHeight="50dp"
android:inputType="textMultiLine"
android:lines="3"
android:maxLines="3"
android:minLines="3" >
<!-- <requestFocus /> -->
</EditText>
<Button
android:id="@+id/sendButton"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="@string/send" />
</RelativeLayout>
因此,简而言之,我希望拥有类似“Go SMS”界面的东西,它会很棒。
提前感谢您的帮助!
答案 0 :(得分:0)
EditText.getLayoutParams().width= 20;
EditText.getLayoutParams().height = 20;
当您对文本进行对焦或单击时,将编辑文本的大小更改为您想要的内容。必须查找如何检测编辑文本是否已被聚焦。