Hmn今天也遇到了同样的问题。我的替代解决方案是只允许在摘要中显示更多文本。
只需创建您自己的 CheckBoxPreference 子类,如下所示:
public class CheckBoxPreferenceWithLongSummary extends CheckBoxPreference{
public CheckBoxPreferenceWithLongSummary(Context context) {
super(context);
}
public CheckBoxPreferenceWithLongSummary(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CheckBoxPreferenceWithLongSummary(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
TextView summaryView = (TextView) view.findViewById(android.R.id.summary);
summaryView.setMaxLines(10);
}
}
然后在你的 PreferenceScreen 中(我假设你使用 xml 来设置 Preference 布局 - 不确定它是否可能完全以编程方式)只需<CheckBoxPreference.../>
用你的新实现替换旧的,比如<com.example.whatever.CheckBoxPreferenceWithLongSummary ... />
似乎对我来说工作得很好,尽管我不确定 findViewById(android.R.id.summary) 因为在父类中使用了 com.android.internal.R.id.summary 似乎无法直接访问从Java内部?希望这不仅仅是巧合:)