Фон
Я создаю приложение с некоторыми настройками, и я хочу использовать встроенную функцию PreferenceActivity или PreferenceFragment для задания
Проблема
Некоторые из предпочтений имеют длинное название, которое я не могу сократить, плюс я думаю, что если бы я когда-либо локализовал приложение (перевести на несколько языков), я столкнулся бы с той же проблемой (например, на немецком языке, который имеет довольно длинные слова, иногда).
То, что вы получаете в этой ситуации, - это только начало текста, а затем "..." (или меньше точек, что не имеет особого смысла в конце).
Пример:
Что я пробовал
Я знаю, что PreferenceActivity распространяется из ListActivity, поэтому я могу изменить его адаптер на все, что пожелаю, но это удалит его работу.
Я также знаю, что я могу распространяться на каждый из типов классов предпочтений, использовать метод onCreateView, чтобы иметь ссылку на созданный вид, а затем обращаться к его дочерним элементам, но это странно, нет? Я имею в виду, это почти похоже на то, что он никогда не изменит способ, которым он выглядит.
EDIT: Здесь пример кода, который я пробовал:
Расширьте из каждого из классов предпочтений и в каждом из них используйте:
...
@Override
protected View onCreateView(final ViewGroup parent)
{
final View view=super.onCreateView(parent);
ViewUtil.handlePreferenceTitleTextView(view);
return view;
}
...
//ViewUtil.java :
private void handlePreferenceTitleTextView(final View v)
{
final TextView titleTextView=(TextView)v.findViewById(android.R.id.title);
if(titleTextView!=null)
titleTextView.setSingleLine(false);
}
Это работает, но я не думаю, что это рекомендуется, так как Google может изменить способ просмотра предпочтений.
Вопрос
Как обрабатывать длинные тексты в заголовках настроек на Android?
Возможно ли, что у него есть эллипсис/шатер (чтобы у него была анимация, чтобы показать все)? Или, может быть, авто подходит размер шрифта? Или установить, что у вас есть перенос слов? Или горизонтальное scrollView, которое позволит пользователю прокручивать, чтобы прочитать остальную часть текста?
Есть ли соглашение о том, как обращаться с такими случаями? Может быть, длинный щелчок, чтобы показать тост/диалог для просмотра всего текста?