android中如何根据文本长度动态增加EditText的高度?
我想增加EditText的高度,因为我动态地或通过xml在EditText中写入文本 我已经尝试过这个代码,但它增加了2行。帮我解决这个问题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
<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
inPostTextChanged()