背景
我正在制作一个有一些设置的应用程序,我想使用内置的 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 上处理首选项标题中的长文本?
是否有可能让它有一个椭圆/选框(这样它就有一个动画来显示一切)?或者也许自动适应字体大小?或者将其设置为自动换行?或者一个允许用户滚动阅读其余文本的水平滚动视图?
是否有关于如何处理此类案件的约定?也许长按以显示吐司/对话框以查看整个文本?