Проблема с границами при изменении высоты EditText

Я разрабатываю приложение для Android, ориентированное на Android 2.3 (API9).

Я хочу изменить высоту простого EditText, но когда я устанавливаю android:layout_height="10pt", граница EditText смещается.

Проблема показана здесь

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

Я пробовал layout_height, height, textsize.. pt, px, sp... но та же проблема.

Я еще не пробовал приложение на реальном устройстве.


person Stancho    schedule 01.02.2011    source источник


Ответы (2)


Какой макет содержит EdiText? Вы никогда не должны использовать точные размеры в пикселях при настройке элементов в Android, так как ваш макет должен правильно работать на экранах с разными размерами и плотностью. (Подробнее см. в разделе поддержка нескольких экранов).

Если вам действительно нужен определенный размер, используйте dp для независимых от плотности пикселей. Это должно работать, чтобы установить layout_height="10dp" Однако это не увеличит размер текста в EditText. Для этого вам нужно использовать textSize. Вам, вероятно, лучше установить textSize и установить layout_height="wrap_content".

См. этот похожий вопрос о дополнительной строке . Похоже, установка цвета фона может это исправить.

person Cheryl Simon    schedule 01.02.2011
comment
У меня есть этот xml: ‹?xml version=1.0 encoding=utf-8?› ‹LinearLayout xmlns:android=schemas.android.com/apk/res/android android:orientation=vertical android:layout_width=fill_parent android:layout_height=fill_parent› ‹EditText android:text=@+id/EditText01 android:id=@+ id/EditText01 android:layout_width=fill_parent android:layout_height=5dp android:textSize=3dip /› ‹/LinearLayout› но та же проблема с границей. Я пробовал layout_height: wrap_content .. но это не меняет высоту EditBox. Станислав - person Stancho; 02.02.2011
comment
Вы установили цвет фона, как было предложено? - person Cheryl Simon; 02.02.2011
comment
Кроме того, размер текста 3dp очень мал. Если вы установите его выше, вы должны увидеть увеличение размера EditText. - person Cheryl Simon; 02.02.2011
comment
Майра спасибо за быстрый ответ! Если я установлю bg EditText = WHITE.. Я не вижу никаких границ - person Stancho; 02.02.2011
comment
Как я могу установить границы таким образом? - person Stancho; 02.02.2011
comment
Я думаю, вам может понадобиться использовать собственный фон с помощью инструмента 9 patch, который позволяет растягивать фоновое изображение: developer.android.com/guide/developing/tools/draw9patch.html - person Cheryl Simon; 02.02.2011
comment
Майра, 10х. Это нормально, если я использую пользовательское фоновое ИЗОБРАЖЕНИЕ. - person Stancho; 02.02.2011

У меня была такая же проблема (и это настоящая боль). С некоторыми экспериментами я обнаружил, что если вы используете «dp» и применяете это эмпирическое правило, оно должно работать для полей EditText.

textSize x 3 = layout_height

Я говорю эмпирическое правило, потому что минимальная высота до того, как поле снова «сломается», составляет около 29 dp. Так, например, если у вас textSize="10dp", тогда layout_height="30dp" или textSize="12dp", тогда layout_height="36dp". У вас может быть меньший textSizes, но он становится неразборчивым ниже 9dp. Я обнаружил, что это хорошо работает в relative_layouts со шрифтами по умолчанию. Удачи!

person angryITguy    schedule 16.02.2011