Размер заголовка пользовательской настройки Android на некоторых устройствах неверен. Какое правильное место, чтобы забрать его? - PullRequest
1 голос
/ 31 августа 2011

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

При создании пользовательского предпочтения путем его превращения в подкласс предпочтения, а такжеиспользуйте пользовательский макет, определенный в XML-файле в res / layout, и используйте этот макет в onCreateView () в пользовательских настройках, похоже, вы полностью потеряете информацию о макете, которую обычно имеют Preference-s.Ничего странного в этом нет, но если вам все еще нужен заголовок (вместе с новым материалом), как вы можете указать размер этого заголовка, если хотите, чтобы он был такого же размера, как и для других предпочтений?Я был уверен, что нашел правильный ответ, установив textAppearance в textAppearanceLarge (либо в XML-файле макета, который кажется более подходящим, либо в коде Java в классе Preference), и это прекрасно работает на большинстве устройств.

Это из файла макета пользовательской настройки:

<TextView
  android:id="@+android:id/title"
  android:layout_alignParentLeft="true"
  android:layout_alignParentTop="true"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:textAppearance="?android:attr/textAppearanceLarge"
>
</TextView>

И это из CustomPreference.onCreateView ():

LayoutInflater mInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout layout = (RelativeLayout)mInflater.inflate(R.layout.custompreference, parent, false);
// Setting up new stuff
return layout; 

Это работает, и я могу изменить размер заголовкав Small или Medium, и мне не нужен код Java для заголовка в пользовательском классе Preference.textAppearanceLarge составляет 22 dp, что, по-видимому, является размером заголовков Preference на большинстве устройств.

Но на некоторых, например, HTC Sensation и Desire S, заголовок Preference меньше.Название пользовательских предпочтений слишком велико на этих устройствах.Таким образом, макеты для нестандартных предпочтений явно не используют textAppearanceLarge, а что-то еще.

Теперь у меня вопрос: что они используют?Где я могу получить его для использования в моих пользовательских преференциях?Я искал в Интернете, как сумасшедший, но я просто не могу найти ответ.Все примеры, которые я могу найти, используют textAppearanceLarge (или просто 22dp), вероятно потому, что никто никогда не замечал, что он не всегда работает правильно.

1 Ответ

0 голосов
/ 21 марта 2017

Использование android:textAppearance="?android:attr/textAppearanceListItem"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...