android - Custom Actionbar Sherlock PreferenceActivity ListView -
i use sherlockpreferenceactivity preference activity xml file. code below:
public class setting extends sherlockpreferenceactivity { protected void oncreate(bundle parambundle) { super.oncreate(parambundle); addpreferencesfromresource(r.xml.setting); } everything work fine need margin left , right 0dip (the pic below) 
i had try find in abs source code failed custom it. has before?
update: upload more detail image 
setting.xml content:
<?xml version="1.0" encoding="utf-8"?> <preferencescreen xmlns:android="http://schemas.android.com/apk/res/android" > <preferencecategory android:title="@string/system_setting" > <checkboxpreference android:defaultvalue="true" android:key="mode_on_off" android:summaryoff="sub setting 1" android:summaryon="sub setting 1 on" android:title="setting 1" /> <checkboxpreference android:defaultvalue="true" android:key="filter_on_off" android:summaryoff="sub setting 2" android:summaryon="sub setting 2 on" android:title="setting 2" /> <checkboxpreference android:defaultvalue="false" android:key="screen" android:summaryoff="sub setting 3" android:summaryon="sub setting 3 on" android:title="setting 2" /> </preferencecategory> </preferencescreen>
i managed working - not sure if nicest/cleanest solution, works.
had make following changes:
make copy of actionbaractivity , have new class extend preferenceactivity
public abstract class actionbarpreferenceactivity extends preferenceactivity { // contents same 'actionbaractivity' }
modify oncreate() in actionbarhelperbase.java - make special case preferenceactivity classes
@override public void oncreate(bundle savedinstancestate) { // if activity preferenceactivity, don't make request if (!(mactivity instanceof preferenceactivity)) { mactivity.requestwindowfeature(window.feature_custom_title); }
have preferenceactivity extend class , add request feature_custom_title before call super.oncreate()
public class mypreferenceactivity extends actionbarpreferenceactivity {
@override protected void oncreate(bundle savedinstancestate) { requestwindowfeature(window.feature_custom_title); // add line super.oncreate(savedinstancestate); addpreferencesfromresource(r.xml.preferences); // etc etc } // etc etc } far can tell, changes 2 , 3 needed because preferenceactivity:
"as call super.oncreate(), viewgroup set , so, not allowed change window's parameters." (see oliver's comment answer)
i guess order of how components in preferenceactivity activities created different plain activity activities .
Comments
Post a Comment