如何在android中动态增加EditText的文本长度?

时间:2015-10-29 09:32:21

标签: android android-edittext

我希望根据我在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>

6 个答案:

答案 0 :(得分:3)

将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" />

希望它会对你有所帮助。

答案 1 :(得分:2)

我认为实施android-autofittextview是您正在寻找的最佳解决方案。

答案 2 :(得分:2)

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()+"");

    }
}

答案 3 :(得分:-1)

要实现这一目标,您需要设置:

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

答案 4 :(得分:-2)

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

答案 5 :(得分:-2)

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

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