【问题标题】:multiple line edit text doesnot scroll when text exceed to many lines当文本超过多行时,多行编辑文本不会滚动
【发布时间】:2020-05-12 20:43:52
【问题描述】:

我正在创建一个聊天应用程序,例如 whatsapp 在我的聊天屏幕上,我有edittext,用户可以在其中输入他的消息。 我想将其高度扩展到最大 4 行,然后如果文本超过第 5 行,edittext 必须向下滚动显示新行。有时它可以工作,但有时编辑文本不会向下滚动。

 <com.vanniktech.emoji.EmojiEditText
                android:id="@+id/enter_msg_txt"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="9.2"
                android:background="@null"
                android:hint="@string/type_message"
                android:maxHeight="100dp"
                android:minHeight="30dp"
                android:singleLine="false"
                android:textSize="@dimen/btn_text" />

我已经搜索了很多并检查了这些属性

android:inputType="textMultiLine"
            android:editable="true"
            android:enabled="true"
            android:minLines="1"
            android:maxLines="6"
            android:isScrollContainer="true"

但仍然没有运气。我认为可能存在一些渲染问题

【问题讨论】:

标签: android scroll android-edittext


【解决方案1】:

这个库可能会解决您的问题。 https://github.com/ViksaaSkool/AutoFitEditText。 试试看!

【讨论】:

  • 这个库不会增加edittext高度它只是调整固定高度edittext的文本大小
【解决方案2】:

使用这行代码

<EditText
    android:inputType="textMultiLine"
    android:lines="int number" <!-- Total Lines prior display -->
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:scrollbars="vertical"/>

【讨论】:

    【解决方案3】:

    这对我有用(用你的观点试试)

    • 使用高度作为wrap content
    • 使用lines作为你想要的行数,所以在向下滚动完成后

      <EditText
      android:id="@+id/reviewEditText"
      android:layout_width="100dp"
      android:layout_height="wrap_content"
      android:lines="3"
      android:scrollbars="vertical"
      />
      

    并确保windowSoftInputMode="adjustResize"

    【讨论】:

      【解决方案4】:

      请试试这个

          <EditText
      android:id="@+id/chatText"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:textSize="20sp"
       android:inputType="text" 
       android:maxLines="1"
       android:lines="1"
       android:scrollHorizontally="true"
       android:ellipsize="end"/>
      

      【讨论】:

      • 你的回答说 max line 1 它将如何工作???我需要多行和垂直滚动
      • 您可以将 maxlines 设置为您想要的任意数量的行,例如:maxlines="2" 或 "3"
      • 使用标签 android:scrollbars = "vertical"
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多