2016-11-11 2 views
2

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"글고에서은 만 여분의 공간도있다 글고 치기에 나타납니다 텍스트 없음

문제 스크린 샷 Problem Images

예상 결과 스크린 샷 Expected Result

+1

프로그래밍 방식으로 maxLines()를 설정 한 후'edittext.invalidate(); '를 호출하십시오. –

+1

'setMaxLines (5)'대신'setLines (5)'를 사용해보십시오. –

답변

1

설정 안드로이드 : inputType = 당신의 XML에서 "텍스트"제거 안드로이드 : minLines = "5".

4

당신은 당신의

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

내 다음 코드를 사용하여 editext가 반응하고

android:minLines="5" 

안부를 제거 할 수 있습니다.

0

코드에서 edtDescription.setSingleLine(false); 줄을 제거해야합니다. 작동해야합니다. 대답 here의 세부 정보를 찾으십시오.

관련 문제