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