PreferenceFragment 背景颜色

26

我正在使用一个没有ListView的PreferenceFragment,但是无法设置背景颜色,似乎是透明的。

如何使用PreferenceFragment将背景颜色设置为白色?

编辑: 第一个屏幕截图: image 1

重写onCreateView不起作用 - image 2


请在这里检查我的答案,它应该有效。[1] - Diego Acosta
3个回答

50

这个问题在这里也有答案。

将下面的代码添加到你的PreferenceFragment中,可以让你添加背景颜色、图片等等。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = super.onCreateView(inflater, container, savedInstanceState);
    view.setBackgroundColor(getResources().getColor(android.R.color.your_color));

    return view;
}

1
能否仅在首选项控件下更改颜色?使空白区域透明。 - Dmitry

6

还可以在onViewCreated()方法中更改视图的背景。

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    view.setBackgroundColor(getResources().getColor(R.color.YOUR_COLOR));
}

这个帖子中的实际答案对我没用,但是这个解决方法修复了它!:D :D 非常感谢你提供的解决方案:D - Felix Eder

2

我面临着相同的需求(为设置片段创建Androidx偏好屏幕背景)。

以下代码对我有效。(在themes.xml文件中)

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        ...............
       <!-- Add below -->
        <item name="preferenceTheme">@style/preference</item>
    </style>
    
    <style name="preference" parent="Theme.AppCompat">
        <item name="android:background">@color/purple_200</item>
    </style>
</resources>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接