Разрешить многострочный вид EditText в Android?
Как разрешить многострочный в Android EditText
посмотреть?
12 ответов:
по умолчанию все
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 --> />
вы можете найти его лучше использовать:
<EditText ... android:inputType="textMultiLine" />
Это потому, что android: singleLine является устаревшим.
это работает для меня, на самом деле эти 2 важных атрибутов: inputType и строки. Кроме того, вам может понадобиться полоса прокрутки, код ниже показывает, как это сделать:
<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"/>
и на вашем java-классе сделайте на click listner этот текст редактирования следующим образом, я добавлю свои, chane имена в соответствии с вашим.
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 внутри верхнего уровня прокрутки :) возможно, наиболее распространенным примером является представление "настройки", которое имеет так много элементов, что они выходят за пределы видимой области. В этом случае вы поместить их всех в представлении прокрутки для прокрутки. В случае, если вам нужен многострочный прокручиваемый текст редактирования в настройках, его прокрутка не будет работать.
чтобы отключить количество строк, ранее назначенных в теме, используйте атрибут xml:
android:lines="@null"
<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 в качестве кнопки post, установите "горизонтальную прокрутку" listview в false.
android:scrollHorizontally="false"
если он не работает в XML, делать это программно странно работает.
listView.setHorizontallyScrolling(false);
еще одна полезная вещь, чтобы сделать, это использовать
android:minHeight
вместе сandroid:layout_height="wrap_content"
. Таким образом, вы можете установить размер редактирования, когда он пуст, и когда пользователь вводит материал, он растягивается в соответствии с тем, сколько пользователь вводит, включая несколько строк.
<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 " пользователь нажимает nextline
String editStr= edittxtAddress.getText().toString().trim(); MyString= editStr.replaceAll("\n"," ");