最近项目里面需要用到Preference来写一个设置布局,但是Preference的背景默认是白色而且字体是黑色的,所以在网上找了一些资料,最后找到了确实可用的解决方法并记录下来.
解决方法参考自 :点击这里
该方法说在 android源文件的 framework/base/core/res/res/layout 可以找到对应的layout,但是我没有去找,不过应该是可以找到的.
然后根据下面这段代码将其创建为一个layout文件,放在res/layout目录下.然后给它取一个名字.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical" android:paddingRight="?android:attr/scrollbarSize">
<RelativeLayout android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_marginLeft="15dip"
android:layout_marginRight="6dip" android:layout_marginTop="6dip"
android:layout_marginBottom="6dip" android:layout_weight="1">
<TextView android:id="@+android:id/title"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:textAppearance="?android:attr/textAppearanceLarge"
android:ellipsize="marquee" android:fadingEdge="horizontal"
android:textColor="@color/background_floating_material_dark"
android:textSize="16sp"/>
<TextView android:id="@+android:id/summary"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@android:id/title" android:layout_alignLeft="@android:id/title"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="14sp"
android:textColor="@color/background_floating_material_dark"/>
</RelativeLayout>
<!-- Preference should place its actual preference widget here. -->
<LinearLayout android:id="@+android:id/widget_frame"
android:layout_width="wrap_content" android:layout_height="match_parent"
android:gravity="center_vertical" android:orientation="vertical"/>
</LinearLayout>
最后,在Preference文件中在你需要修改的XXXPreference中指定其layout属性即可.如:
<Preference
android:layout="@layout/preference_custom"
android:key="time"
android:persistent="false"
android:title="@string/time" />
其中 preference_custom是刚才对复制来的layout文件的命名..程序运行之后就可以发现,字体颜色和大小都可以统统改变了.