2015-08-12 3 views
0

У меня есть EditText, но я хочу только одну строку. Я положил известиОтключить ввод в editText android

 <item name="android:maxLines">1</item> 
     <item name="android:minLines">1</item> 
     <item name="android:lines">1</item> 

но не работает.

enter image description here

Смотрите мой код:

<LinearLayout style="@style/linearInputEntryText"> 
       <LinearLayout style="@style/subLinearLayout"> 
        <TextView style="@style/label" android:text="Last Name" android:id="@+id/textView2"/> 
        <EditText style="@style/editTextEntryName" android:id="@+id/lastName"/> 
       </LinearLayout> 
       <View style="@style/linearInputEntryBlack" > </View> 
      </LinearLayout> 

и стили:

<style name="editTextEntryName" parent="editTextEntry"> 
    <item name="android:maxLines">1</item> 
    <item name="android:minLines">1</item> 
    <item name="android:lines">1</item> 
    <item name="android:layout_gravity">left</item> 
</style> 
+0

Это возможно только с inputType многострочным я думаю. –

+1

set 'android: singleLine = true' для вашего' EditText' – Rustam

+0

add android: inputType = "text" и android: singleLine = "true". –

ответ

6

Из-за различных версий Android, лучшая практика, чтобы включить эти параметры в то же время:

<item name="android:maxLines">1</item> 
<item name="android:lines">1</item> 
<item name="android:singleLine">true</item> 

Если вы этого не сделаете, это будет не корректно работать на некоторых устройствах.

4

Пожалуйста, используйте

android:singleLine="true" 

вместо

<item name="android:maxLines">1</item> 
    <item name="android:minLines">1</item> 
    <item name="android:lines">1</item> 

Этот единственный атрибут достаточно, чтобы ваш EditText принял только одну строку текста и отключил кнопку ввода.

UPDATE

Не беспокойтесь об этом комментариях,

андроид: SingleLine осуждается это не очень хорошая практика использовать его

Это ПРИСВОЕНО официально поддерживается и не осуждаются каким-либо возможным способом. И также гарантируется, что это будет работать на всех устройствах и на всех версиях Android.

+2

Если ваша проблема решена, пожалуйста, поддержите ее и примите. –

+0

Есть ли проблема с моим ответом, что он не принят? –

+0

Это правильно, но неверно, что вместо остальных, которые вы указали, следует использовать параметр singleLine. Все они должны использоваться вместе или TextView будет вести себя неправильно на выбранных устройствах. Я видел это на собственном опыте, это не «возможно» предупреждение. – Kelevandos

0

использование android:singleLine="true" свойство

 <EditText 
     ...... 
     android:singleLine="true" 
     android:id="@+id/lastName"/> 
0

Или, если вы тусклый на использование Java вы можете сделать это:

edittext1.setSingleLine(); 
1

Вы можете использовать

<EditText 
    ...... 
    android:imeOptions="actionNext" OR "actionDone" /> 
+0

Не могли бы вы подробнее рассказать? Что вы пытаетесь выполнить, и почему это решение работает? –

0

Вы можете установить тип входа в textEmailSubject. Я возглавляю ту же проблему, и она ее решает!

1

android: maxLines = "1" разрешает многострочный текст, но ограничивает высоту edittext для отображения одной строки.

Если вы хотите отключить клавишу ввода (новая линия), установите тип входа в тексте

android:inputType="text" 
Смежные вопросы