Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中如何根据文本长度动态增加EditText的高度?_Android_Android Edittext - Fatal编程技术网

android中如何根据文本长度动态增加EditText的高度?

android中如何根据文本长度动态增加EditText的高度?,android,android-edittext,Android,Android Edittext,我想增加EditText的高度,因为我动态地或通过xml在EditText中写入文本 我已经尝试过这个代码,但它增加了2行。帮我解决这个问题 <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:or

我想增加EditText的高度,因为我动态地或通过xml在EditText中写入文本

我已经尝试过这个代码,但它增加了2行。帮我解决这个问题

<LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="vertical" >

            <EditText
                android:id="@+id/edtAddress"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@null"
                android:drawableLeft="@drawable/user"
                android:drawablePadding="5dp"
                android:singleLine="false"
                android:inputType="textCapSentences|textMultiLine"
                android:hint="Address"
                android:maxLength ="2000" 
                android:isScrollContainer="true"
                android:padding="5dp" />

            <View
                android:layout_width="fill_parent"
                android:layout_height="0.5dp"
                android:background="@color/editText_line" />
        </LinearLayout>

将“android:maxLines”参数设置为xml文件中的edittext,它将增加行数。

最好将edittext的高度增加到4行。所以你应该试试下面的代码

<EditText
    android:id="@+id/edtInput"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@null"
    android:drawableLeft="@drawable/user"
    android:drawablePadding="5dp"
    android:singleLine="false"
    android:inputType="textCapSentences|textMultiLine"
    android:hint="Address"
    android:maxLength ="2000" 
    android:isScrollContainer="true"
    android:padding="5dp"
    android:maxLines="4" />


希望它能帮助您。

在xml文件中的
EditText
中添加此属性:

android:inputType="textMultiLine"
android:maxLines="10"

我认为实施是解决您所需问题的最佳解决方案。

要实现这一点,您需要设置:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.widget.EditText;

public class Main2Activity extends AppCompatActivity {

    EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        editText = findViewById(R.id.editText);
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                getSize();
            }
        });
    }

    private void getSize() {
        if (editText.getLineCount() == editText.getMaxLines()) {
            editText.setMaxLines((editText.getLineCount() + 1));
        }
        // Log.e("lenth", editText.getContentDescription().length()+"");

    }
}
android:inputType="textMultiLine"
android:layout_height="wrap_content"

你想增加多少行?你是
height=“wrap\u content”
所以你不必做任何其他事情,它会根据内容高度自动消耗。我尝试了你的代码。它正在动态地增加高度!!!您好,Mayuri,我想在edittext中添加4行。这可以在添加行时完美地提高高度,但在删除行时不会降低高度。为此,当
getMaxLines()!=getLineCount()+1
in
PostTextChanged()