我想添加首选项列表的自定义布局。但它给了我这个错误。
内容具有带id属性的视图' android.R.id.list_container'那 不是ViewGroup类
布局:
<FrameLayout
android:id="@+id/list_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
样式:
<style name="BestMainTheme" parent="Theme.AppCompat.NoActionBar">
<item name="colorControlNormal">@color/white</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowBackground">@color/windowBackground</item>
<item name="preferenceTheme">@style/BestAppSettingsTheme</item>
<item name="android:textColorPrimary">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/darker_gray</item>
<item name="android:textColorHint">@android:color/darker_gray</item>
</style>
<style name="BestAppSettingsTheme" parent="@style/PreferenceThemeOverlay.v14.Material">
<item name="android:layout">@layout/fragment_preferences</item>
</style>
代码:
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences, rootKey);
}
答案 0 :(得分:2)
如果您使用的是支持偏好版本24或更高版本,则Google已将所需的ID从R.id.list_container
更改为android.R.id.list_container
。
所以只需将您的布局文件更改为:
<FrameLayout
android:id="@android:id/list_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>