답변:
기본적 EditText
으로 Android의 모든 위젯은 여러 줄로 표시됩니다.
샘플 코드는 다음과 같습니다.
<EditText
android:inputType="textMultiLine" <!-- Multiline input -->
android:lines="8" <!-- Total Lines prior display -->
android:minLines="6" <!-- Minimum lines -->
android:gravity="top|left" <!-- Cursor Position -->
android:maxLines="10" <!-- Maximum Lines -->
android:layout_height="wrap_content" <!-- Height determined by content -->
android:layout_width="match_parent" <!-- Fill entire width -->
android:scrollbars="vertical" <!-- Vertical Scroll Bar -->
/>
inputType
은 적어도 lines
and minLines
속성을 무효화하는 것입니다. 나는 가지고 있었고 inputType="phone"
라인 속성은 영향을 미치지 않았다
IndexOutOfBoundsException
이 때문에 뭔가를 입력하는 즉시android:inputType="textMultiLine"
다음을 사용하는 것이 좋습니다.
<EditText
...
android:inputType="textMultiLine"
/>
android:singleLine
더 이상 사용되지 않기 때문 입니다.
singleLine
부분을 삭제했기 때문에 (오래 전에). 질문 자체에 관해서는 이것이 답변의 가장 중요한 부분입니다.
IndexOutOfBoundsException
당신이 뭔가를 입력하는 즉시. 여러 줄이 기본값입니다.
이것은 나를 위해 실제로 작동합니다. 실제로 두 가지 속성 인 inputType 및 lines 이 중요 합니다 . 또한 스크롤 막대가 필요할 수 있습니다. 아래 코드는 스크롤 막대를 만드는 방법을 보여줍니다.
<EditText
android:id="@+id/addr_edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top|left"
android:inputType="textEmailAddress|textMultiLine"
android:lines="20"
android:minLines="5"
android:scrollHorizontally="false"
android:scrollbars="vertical" />
이것이 아래 코드 스 니펫을 적용한 방법이며 정상적으로 작동합니다. 희망, 이것은 누군가를 도울 것입니다.
<EditText
android:id="@+id/EditText02"
android:gravity="top|left"
android:inputType="textMultiLine"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:lines="5"
android:scrollHorizontally="false"
/>
건배! ...감사.
이것을 시도하고 편집 텍스트보기 에이 줄을 추가하십시오. 내 것을 추가하겠습니다. 당신이 그것을 이해해야합니다
android:overScrollMode="always"
android:scrollbarStyle="insideInset"
android:scrollbars="vertical"
<EditText
android:inputType="textMultiLine"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText_newprom_description"
android:padding="10dp"
android:lines="5"
android:overScrollMode="always"
android:scrollbarStyle="insideInset"
android:minLines="5"
android:gravity="top|left"
android:scrollbars="vertical"
android:layout_marginBottom="20dp"/>
그리고 당신의 자바 클래스에서 다음과 같이이 편집 텍스트에 클릭 리스터를 만드십시오.
EditText description;
description = (EditText)findViewById(R.id.editText_newprom_description);
description.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
view.getParent().requestDisallowInterceptTouchEvent(true);
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_UP:
view.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
return false;
}
});
이것은 나를 위해 잘 작동
EditText에는 singleLine 속성이 있습니다. XML에서 설정하거나 setSingleLine (false)을 호출하여 설정할 수 있습니다. http://developer.android.com/reference/android/widget/TextView.html#setSingleLine%28%29
이것들은 모두 훌륭하지만 상위 스크롤보기 안에 편집 텍스트가있는 경우에는 작동하지 않습니다 :) 아마도 가장 일반적인 예는 항목이 너무 많아 보이는 영역을 벗어나는 "설정"보기입니다. 이 경우 설정을 스크롤 가능하게 만들기 위해 모두 스크롤보기에 넣습니다. 설정에 여러 줄 스크롤 가능 편집 텍스트가 필요한 경우 해당 스크롤이 작동하지 않습니다.
<EditText
android:id="@id/editText" //id of editText
android:gravity="start" // Where to start Typing
android:inputType="textMultiLine" // multiline
android:imeOptions="actionDone" // Keyboard done button
android:minLines="5" // Min Line of editText
android:hint="@string/Enter Data" // Hint in editText
android:layout_width="match_parent" //width editText
android:layout_height="wrap_content" //height editText
/>
나는 웹 사이트를 좋아하지 않지만 http://www.pcsalt.com/android/edittext-with-single-line-line-wrapping-and-done-action-in-android/ 에서 이것을 배웠습니다 . 여러 줄로 입력하지만 Enter 버튼을 게시 버튼으로 유지하려면 목록보기의 "가로 스크롤"을 false로 설정하십시오.
android:scrollHorizontally="false"
XML에서 작동하지 않으면 프로그래밍 방식으로 이상하게 작동합니다.
listView.setHorizontallyScrolling(false);
<EditText
android:hint="Address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="textMultiLine|textNoSuggestions"
android:id="@+id/edittxtAddress"
android:layout_marginLeft="@dimen/textsize2"
android:textColor="@android:color/white"
android:scrollbars="vertical"
android:minLines="2"
android:textStyle="normal" />
활동에서 "\ n"을 제거하려면 다음 행을 누르십시오.
String editStr= edittxtAddress.getText().toString().trim();
MyString= editStr.replaceAll("\n"," ");
일부가 AppCompatEditText 를 사용하는 경우 inputType = "textMultiLine" 을 설정해야합니다. 여기 복사 할 수있는 코드가 있습니다.
<androidx.appcompat.widget.AppCompatEditText
android:padding="@dimen/_8sdp"
android:id="@+id/etNote"
android:minLines="6"
android:singleLine="false"
android:lines="8"
android:scrollbars="vertical"
android:background="@drawable/rounded_border"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_25sdp"
android:layout_marginTop="32dp"
android:layout_marginEnd="@dimen/_25sdp"
android:autofillHints=""
android:gravity="start|top"
android:inputType="textMultiLine"
/>
배경
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/_5sdp"/>
<stroke android:width="1dp" android:color="#C8C8C8"/>
</shape>