背景
我正在开发一个应用程序,其中有一些设置,我希望使用内置的PreferenceActivity或PreferenceFragment完成这项工作。
问题
一些偏好设置具有过长的标题,我无法缩短它们,而且我认为如果我将应用程序本地化(翻译成多种语言),我将面临相同的问题(例如在德语中,有相当长的单词,有时候)。
在这种情况下,您只能看到文本的开头,然后是“...”(或更少的点,这并没有太多意义)。
示例:
我尝试过的方法
我知道PreferenceActivity从ListActivity继承,因此我可以更改其适配器为任何我想要的,但这将删除它的工作方式。
我还知道我可以从每个喜好类别扩展,使用“onCreateView”方法引用创建的视图,然后访问其子元素,但这很奇怪,对吧?我的意思是,这几乎就像假设它永远不会改变外观。
编辑:以下是我尝试过的示例代码:
从每个喜好类别扩展,然后在每个类别中使用:
...
@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);
}
它确实起作用,但我认为不建议使用,因为谷歌可能会更改偏好设置视图的工作方式。
问题
如何处理Android中偏好设置标题中的长文本?
是否可以使其具有省略号/跑马灯(这样它将具有动画来显示所有内容)?或者自动调整字体大小?或者将其设置为自动换行?或者水平滚动视图,允许用户滚动以阅读其余文本?
也许有惯例可以处理这种情况吗?也许长按以显示弹出窗口/对话框以查看整个文本?