Intereting Posts
Как центрировать камеру так, чтобы маркер находился в нижней части экрана? (Google map api V2 Android) Как скрыть softkeyboad, когда активность начинается в Android? Создание объекта местоположения в Android со значениями широты и долготы Как настроить Visual Studio 2015 с SDL2 для Android, iOS и Windows Development? Как получить позицию позиции списка, нажав кнопку внутри нее? Не удалось выполнить повторную установку из-за различных подписей приложений Как проверить, является ли JSONObject нулевым или не существует Android ExoPlayer onProgressChanged Обнаруживать, когда фрагмент рисуется? Как использовать Git на Android? Прозрачный размытый вид, который размывает макет под Запустить среду разработки рельсов на Android Пропускать заголовки в PreferenceActivity, когда есть только один заголовок В чем разница между AppBarLayout и панелью инструментов? Устройства Motorola: org.threeten.bp.DateTimeException при анализе даты в ThreeTen

Как предотвратить изменение размера 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" И он работал просто отлично! Большое спасибо!