Android多行textedit高度增长太多

时间:2014-09-16 11:04:06

标签: android android-edittext textview

我希望有两个多行短信,随着输入的内容越来越多,这两个短信都会增长。

这是我到目前为止所得到的:

<RelativeLayout ...>
    // Some other stuff

    <LinearLayout
        android:id="@+id/content_layer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/bg_lists_repeat"
        android:layout_below="@id/title_bar"
        android:orientation="vertical">

        <TextView
            android:id="@+id/multi_line_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"/>


        <EditText
            android:id="@+id/multi_line_edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:scrollbars="vertical"
            android:inputType="textCapSentences|textMultiLine"/>

        <TextView
            android:id="@+id/multi_line_text_view_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"/>

        <EditText
            android:id="@+id/multi_line_edit_text_2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:scrollbars="vertical"
            android:inputType="textCapSentences|textMultiLine"/>

    </LinearLayout>
</RelativeLayout>

但是有一些问题:

    如果你按下回车,
  1. EditText会无限增长并无限增长
    • 如果EditText只在视图中占据所有空间并且不再进一步增长
    • ,那将会很好
  2. EditText中选择字词时,如果您在EditText底部选择了某些内容,或者EditText很大,则Action Bar at the top for copying / pasting / cutting并不会始终显示{/ 3}} >

    我该如何解决这些问题?

    修改

    我不想设置最大行数,因为我们有不同的屏幕尺寸,因此硬编码数字并不是一个好的解决方案。

2 个答案:

答案 0 :(得分:0)

TRY:

android:maxLines="5" 

your_text_view.setMaxLines(5);

修改

或者您可以将addTextChangedListener()与您的编辑文本相关联:

your_edit_text.addTextChangedListener(this);  
@Override
public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
        int after) {
    // TODO Auto-generated method stub

}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub
    //Here you can take necessary action if the edit text grows beyond some height
}

答案 1 :(得分:0)

试试这个:

 <EditText
            android:id="@+id/multi_line_edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:scrollbars="vertical"
            android:maxLines="5"
            android:inputType="textCapSentences|textMultiLine"/>