Editline에 프로그래밍 방식으로 Maxline을 설정하려고합니다. 텍스트를 지운 후에 EditText에 여분의 공간을 제공하지 않습니다. xml에 maxLine을 설정하면 EditText에 텍스트가 없어도 추가 공간이 표시됩니다.EditText.setMaxLines() 프로그래밍 방식으로 작동하지 않습니다
xml을 사용하는 대신 프로그램 방식으로 이러한 여분의 공간을주는 방법. 왜냐하면 많은 뷰에서 동일한 XML을 사용해야하기 때문입니다.
프로그래밍 코드는
public void showDescriptionDialog() {
final Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_upload_description);
final EditText edtDescription = (EditText) dialog.findViewById(R.id.edt_upload_description);
edtDescription.setHint(context.getString(R.string.description));
edtDescription.setSingleLine(false);
edtDescription.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION);
edtDescription.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
edtDescription.setMaxLines(5);
edtDescription.setVerticalScrollBarEnabled(true);
edtDescription.setMovementMethod(ScrollingMovementMethod.getInstance());
edtDescription.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
if (description != null) {
edtDescription.setText(description);
}
dialog.show();
dialog.findViewById(R.id.img_upload_description_back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
}
});
dialog.findViewById(R.id.img_upload_description_done).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
description = edtDescription.getText().toString();
dialog.dismiss();
}
});
dialog.findViewById(R.id.btn_upload_description_done).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
description = edtDescription.getText().toString();
dialog.dismiss();
}
});
}
XML 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="30dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:padding="10dp">
<ImageView
android:id="@+id/img_upload_description_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginEnd="10dp"
android:contentDescription="@string/upload"
android:src="@drawable/ic_back_white" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="10dp"
android:singleLine="true"
android:ellipsize="end"
android:text="@string/title_description"
android:textColor="@android:color/white"
android:textSize="@dimen/font_size_large" />
<ImageView
android:id="@+id/img_upload_description_done"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="10dp"
android:contentDescription="@string/done"
android:padding="8dp"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/ic_tick_white" />
</RelativeLayout>
<EditText
android:id="@+id/edt_upload_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:hint="@string/txt_upload_description_hint"
android:gravity="top"
android:textSize="@dimen/font_size_small"
android:layout_marginTop="30dp"
android:minLines="5" />
<Button
android:id="@+id/btn_upload_description_done"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginTop="20dp"
android:background="@color/btn_magenta"
android:text="@string/txt_done"
android:textColor="@android:color/white" />
</LinearLayout>
내가 안드로이드를 사용하는 경우 : minLines을 = "5"글고에서은 만 여분의 공간도있다 글고 치기에 나타납니다 텍스트 없음
프로그래밍 방식으로 maxLines()를 설정 한 후'edittext.invalidate(); '를 호출하십시오. –
'setMaxLines (5)'대신'setLines (5)'를 사용해보십시오. –