Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
869 views
in Technique[技术] by (71.8m points)

android - How to customize the title of a PreferenceActivity?

I have the same problem like this question: Custom title bar in PreferenceActivity?

After extending PreferenceActivity, I write this code in onCreate(), it just shows a blank grey title. I think it is a bug (because this solution works well with Activity).

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title);
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.main_pref);

Edited:

window_title.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:background="@color/titleBar" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" 
    android:paddingLeft="5dip" 
    android:paddingRight="5dip">

    <ImageView android:id="@+id/imageView1" 
               android:src="@drawable/megadict_icon" 
               android:layout_height="35dip" 
               android:layout_width="35dip" 
               android:layout_gravity="center_vertical" />

    <TextView android:layout_width="wrap_content" 
              android:id="@+id/textView1" 
              android:layout_height="wrap_content" 
              android:textColor="@color/white" 
              android:textSize="16dip" 
              android:layout_weight="1" 
              android:layout_gravity="center_vertical" 
              android:text="@string/appName" 
              android:paddingLeft="5dip" 
              android:paddingRight="5dip" />

    <ProgressBar style="?android:attr/progressBarStyleSmall" 
                 android:id="@+id/progressBar" 
                 android:layout_width="28dip" 
                 android:layout_height="28dip" 
                 android:layout_gravity="center_vertical" 
                 android:visibility="invisible" />

</LinearLayout>

main_pref.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:title="@string/mainPrefTitle">

    <ListPreference android:entries="@array/languageStrings" 
                    android:entryValues="@array/languageValues" 
                    android:dialogTitle="@string/languagePrefTitle" 
                    android:title="@string/mainPrefTitle" 
                    android:key="languagePrefKey" />

</PreferenceScreen>
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

call setFeatureInt() AFTER addPreferenceFromResource().


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...