java - PreferenceCategory theme not applied to PreferenceScreen -
i saw lots of answers , threads regarding problem alone tutorials how create custom preferencecategory. nothing works me. theme not applied.
preferenceactivity class:
public class preferencesactivity extends preferenceactivity{ private mypreferencefragment preferences; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); preferences = new mypreferencefragment(); getfragmentmanager().begintransaction().replace(android.r.id.content, preferences).commit(); } public static class mypreferencefragment extends preferencefragment { @override public void oncreate(final bundle savedinstancestate) { super.oncreate(savedinstancestate); addpreferencesfromresource(r.layout.mypreferences); } } }
androidmanifest:
<activity android:name="com.gpsy.preferences.preferencesactivity" android:screenorientation="portrait" android:configchanges="keyboardhidden|orientation" android:theme="@style/custom"> </activity>
styles.xml:
<resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="preferencelistheader" > <item name="android:textcolor">#000000</item> <item name="android:textstyle">bold</item> <item name="android:textsize">12sp</item> <item name="android:background">@color/gray</item> <item name="android:paddingtop">6dp</item> <item name="android:paddingbottom">6dp</item> <item name="android:paddingleft">12dp</item> </style> <style name="custom" parent="@android:theme.light.notitlebar"> <item name="android:listseparatortextviewstyle">@style/preferencelistheader</item> </style> </resources>
mypreferences.xml:
<?xml version="1.0" encoding="utf-8"?> <preferencescreen xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <preferencecategory android:title="@string/gps_settings"> <listpreference android:key="nav_systems_preference" android:title="@string/my_nav_app" android:summary="summary_checkbox_preference"/> </preferencecategory> </preferencescreen>
also, tried apply theme following way without success:
settheme(r.style.custom);
tryed change preferencecategory tag
<preferencecategory android:widgetlayout="@style/custom" android:title="@string/gps_settings">
your theme not working because did not set android:layout_width
, android:layout_weight
nor inherited parent (which not given).
for <style name="preferencelistheader" >
, add following:
<item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item>
you don't need settheme(r.style.custom);
or android:widgetlayout="@style/custom"
then. can't provide style android:widgetlayout
, anyway. have provide layout resource contains textview. if choose use style (see above), don't need set layout.