Intereting Posts
Как протестировать Android Pay с помощью отладочной APK? Ярлык в блоке редактирования в android Извлеките исходный сертификат X.509 из подписанного APK или JAR Настройка цвета заголовка приложения в обзоре (последние приложения) Как изменить имя apk, отредактировав файл манифеста? HttpURLConnection отлично работает в Android 2.x, но НЕ в 4.1: не обнаружены проблемы аутентификации Non scrollable textview в android Анимация анимации Android Fragment, воспроизведенная выше, вводит анимацию Как создать баннер admob программно? Как проверить данное доменное имя http или https в java? Монитор памяти в Android Studio сообщает о разном использовании ОЗУ, чем устройство «Не найдено активных совместимых AVD или устройств Отправка сообщения обработчику мертвой нити при получении местоположения из IntentService Где документация filtercript (и как я могу ее использовать)? Google play – как часто обновляется статистика консоли разработчика

Как предотвратить изменение размера EditText при вводе пользователем?

У меня есть EditText и Button расположенные рядом друг с другом на одной горизонтальной линии. Это выглядит великолепно, за исключением случаев, когда пользователь вводит много текста, изменяется EditText , а Button сжимается.

У меня есть как EditText и Button установленные в layout_width="wrap_content" . "fill_parent" макет, и я не хочу использовать абсолютные размеры, если мне это не нужно – то, как сейчас выглядит великолепно как в пейзаже, так и в портрете, я просто не хочу изменять размер EditText .

Мой макет:

 <TableLayout android:id="@+id/homelayout" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TableRow> <TextView android:id="@+id/labelartist" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Find artists:" /> </TableRow> <TableRow> <EditText android:id="@+id/entryartist" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="6" android:background="@android:drawable/editbox_background" android:editable="true" android:padding="5px" android:singleLine="true" /> <Button android:id="@+id/okartist" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginLeft="10dip" android:layout_weight="1" android:text="Search" /> </TableRow> </TableLayout> 

Solutions Collecting From Web of "Как предотвратить изменение размера EditText при вводе пользователем?"

Для использования EditText

 android:layout_width="0dp" - not required but preferred. android:layout_weight="1" 

И для Button не android:layout_weight

Что я делаю в onCreate для активности, сначала измерьте EditText, а затем примените его maxWidth.

Вы можете сделать это, используя код, похожий на следующий:

 EditText someedittext = (EditText)findViewById(R.id.sometextview); someedittext.setMaxWidth(someedittext.getWidth()); 

Дайте EditText maxWidth . Это должно остановить его изменение размера за пределы ширины, которую вы предоставили. Кроме того, если вы хотите, чтобы он содержался в пределах 1 строки, установите для параметра maxLines значение 1.

Просто используйте:

 android:layout_width="fill_parent" 

Для EditText и Button. Он также будет работать для EditText, но лучше иметь его на обоих.

Вы можете определить размер вашего edittext, как показано выше

 android:minWidth="80dp" android:maxWidth="80dp" 

или

 android:layout_width="60dp" 

или

Вы можете применить фоновое изображение размера, которое хотите, но не забудьте определить его высоту и ширину с помощью wrap_content.

  android:layout_width="wrap_content" android:layout_height="wrap_content" 

Введите описание изображения здесь

Вам нужно добавить android: imeOptions, чтобы предотвратить это поведение.

кликните сюда

У меня была аналогичная проблема, но я не мог заставить выше работать. То, что я сделал, берет текст из поля EditText, а затем отформатирует его до максимального размера, который может обрабатывать мой экран. Когда я сохраню это в БД, я сохраню его в виде текста текста и исходного текста.

Если вы перейдете на эту страницу, я добавлю более подробное объяснение.

Правильный способ сделать это – установить андроид: minWidth и android: maxWidth, равный требуемой ширине. Таким образом вам не придется настраивать макет для использования android: layout_weight.

Например, если вы хотите, чтобы ваш EditText всегда составлял 80 пикселей плотности, независимо от того, сколько символов вы вводите, используйте следующее:

 android:minWidth="80dp" android:maxWidth="80dp" 

У меня был точный запрос. Но у меня был EditText и кнопка рядом друг с другом в Linear Layout. Я пробовал android: layout_weight = "1" для EditText android: layout_width = "0dp" И он работал просто отлично! Большое спасибо!