Android 打开软输入时EditText多行不展开
关于这个问题,我已经看到了很多答案,但没有一个能解决我的问题。我的布局文件如下所示:Android 打开软输入时EditText多行不展开,android,android-edittext,multiline,Android,Android Edittext,Multiline,关于这个问题,我已经看到了很多答案,但没有一个能解决我的问题。我的布局文件如下所示: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.andr
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:background="@color/lightGrey"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/chatAppBarLayout"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentTop="true">
<android.support.v7.widget.Toolbar
android:id="@+id/chatToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.AppBarLayout>
<RelativeLayout
android:id="@+id/chatScreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingBottom="16dp"
android:paddingTop="16dp"
android:layout_marginTop="?attr/actionBarSize">
<ListView
android:id="@+id/chatListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/sendMessageContainer"
android:layout_marginBottom="10dp"
android:scrollbars="none"
android:stackFromBottom="true"
android:transcriptMode="normal">
</ListView>
<RelativeLayout
android:id="@+id/sendMessageContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="30dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="0dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/sendChatMessage"
android:layout_toLeftOf="@+id/sendChatMessage"
android:layout_alignParentLeft="true">
<EditText
android:id="@+id/chatInput"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="textMultiLine"
android:lines="1"
android:maxLines="5"
android:scrollbars="vertical" />
</LinearLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/sendChatMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="15dp"
android:layout_alignParentRight="true" />
</RelativeLayout>
</RelativeLayout>
</android.support.design.widget.CoordinatorLayout>
我希望它最初显示1行,但在输入文本时最多扩展到5行。我不明白为什么我的EditText
没有进入多行。我有一种感觉,这是因为它被固定在某个视图上,但我无法理解。任何帮助都将不胜感激
编辑:通过上面的代码,我的
编辑文本
似乎扩展到了多行,但在打开软输入时却没有。我打开软输入,键入2行,编辑文本显示一行和垂直滚动。当我关闭软输入时,它会扩展到两行。当我再次打开软输入时,有两行。如果我输入另一行,它会显示两行滚动。如果我关闭,它将扩展到3行。当软输入打开时,它为什么不展开?您已将行设置为1,这就是为什么它只显示一行
更改android:lines=“5”
并添加android:minLines=“1”
是的
<EditText
android:id="@+id/chatInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:lines="5"
android:minLines="1"
android:scrollbars="vertical" />
试试这个
android:inputType="textMultiLine"
android:lines="5"
然后在它看起来像
<EditText
android:id="@+id/editTextmessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="15"
android:inputType="textMultiLine"
android:maxLines="5"
android:scrollbars="vertical"
android:textSize="@dimen/small_txt_size" />
试试这种方法
<EditText
android:id="@+id/chatInput"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="textMultiLine"
android:minLines="5"
android:scrollbars="vertical" />
您也可以这样做:
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:context="nasuakza.com.br.nasuakz.activities.AtvProduto">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/descricao" />
</android.support.v4.widget.NestedScrollView>
在源代码中添加以下行
editor.setSingleLine(false);
如果希望它是多行的,为什么要指定
android:lines=“1”
?因为我希望它最初显示一行,但扩展到最多5行。从行的文档中可以看出:使TextView正好有这么多行。()因此,在您的情况下,设置inputType=“textMultiLine”
并设置maxLines=“5”
并删除行,但它最初显示5行。这很奇怪,因为我刚试过,它最初显示单行,当我开始按enter键时,它会扩展到5行,停止高度扩展,并在内部继续扩展。请参考编辑的问题,我希望最初只有一行,但最多扩展到5行。同样的问题。一行开始不会扩展。好的,对不起,这似乎是一个完全不同的问题。请参考更新的问题。删除android:fitsystemwindows=“true”请参考编辑问题,我希望最初只有一行,但最多可以扩展到5行。你是说自动扩展行???@VedavyasBhat新的更新答案非常适合我。尽量提高包装的高度。内容可能是它的问题。好的,对不起,这似乎是一个完全不同的问题。请参阅更新的问题。请参阅编辑问题,我希望最初只有一行,但最多扩展到5行。删除android:lines=1
会导致最初有5行。@VedavyasBhat:更新了我的答案。很抱歉,这似乎是一个完全不同的问题。请参考更新的问题。这似乎是一个完全不同的问题。请参阅更新的问题。