向PreferenceFragment添加自定义布局

时间:2016-10-30 20:45:47

标签: android

我有一个带偏好屏幕层次结构的首选项片段。我想添加一个自定义布局来定义一个"关于作者"部分,将imageview添加到元素和链接(意图浏览器)。我搜索了但是我没有找到关于这个主题的任何资源。

2 个答案:

答案 0 :(得分:16)

在您的偏好设置xml文件(res/xml/prefs.xml)中,添加带有自定义布局的Preference

<Preference
    android:layout="@layout/custom_preference"/>

带有layout/custom_preference.xmlImageView的{​​{1}}示例,其中包含将在浏览器中打开的链接:

TextView

它是屏幕截图中的最后一个偏好: preference screen with custom preference

答案 1 :(得分:0)

这只是卡门(2016年10月30日)回答的后续行动:

如果要动态更改自定义布局上的属性,则在屏幕加载后,不能使用以下内容:

PreferenceScreen customPref = (PreferenceScreen) findPreference("customPreference");
View prefRow = customPref.getView(null, null);
ImageView imageView = (ImageView)prefRow.findViewById(R.id.image_view);
imageView.setImageResource(R.drawable.whatever);

尽管它不会崩溃,但实际上不会做任何事情。奇怪而混乱。

您必须使用自定义类并覆盖 onBindView() 才能更改自定义布局上的属性。该技术的说明如下:How to manage custom preference layout

另一种方法是使用getView(),但要确保使用View view = super.getView(convertView, parent);Android Set Custom Preference Layout