Android EditText плохо себя ведет на определенных устройствах, особенно HTC - PullRequest
1 голос
/ 31 января 2012

У меня есть несколько EditTexts в очень плотном / компактном приложении, полном TextView, шириной 3 символа. Обычно отображается на большинстве устройств и на эмуляторе. Однако в HTC Evo 3D, HTC myTouch 4G и Viewsonic gTablet EditText в два раза шире, чем должно быть.

Удаляя как можно больше, повторяя при этом поведение:

<EditText android:id="@+id/editTextFoo"
    android:hint="123"
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:minEms="3"
    android:maxEms="3"/>

Я могу ограничить это, указав в пикселях, dp или sp вместо wrap_content, но это довольно неудовлетворительно со всеми компоновками для разных размеров и плотности экранов.

Реализованы ли на некоторых устройствах EditTexts с минимальной шириной?

РЕДАКТИРОВАТЬ: я испытываю это для нескольких различных типов макетов.

1 Ответ

0 голосов
/ 31 января 2012

Ответ на мой собственный вопрос:

Немного нелогично, но я взял немного кода из игры, которую я ранее сделал.Метод PaintTextText работал хорошо.Если вы используете моноширинный шрифт, подойдет любая n-буквенная строка.

Paint p = new Paint();
p.setTextSize(editTextFoo.getTextSize());
int w = (int) p.measureText("MMM");
LayoutParams layoutParams = new LayoutParams(w+40,LayoutParams.WRAP_CONTENT);
editTextFoo.setLayoutParams(layoutParams);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...