android - 如何自定义 PreferenceActivity 的标题?

标签 android android-2.2-froyo custom-titlebar

我有同样的问题,就像这个问题: Custom title bar in PreferenceActivity?

扩展PreferenceActivity后,我在onCreate()中编写了这段代码,它只显示了一个空白的灰色标题。我认为这是一个错误(因为这个解决方案与 Activity 配合得很好)。

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

已编辑:

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>

最佳答案

addPreferenceFromResource()之后调用setFeatureInt()

关于android - 如何自定义 PreferenceActivity 的标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6831325/

相关文章:

java - 为什么空项目有很大的内存分配?

android - Android "open"是否足以让您禁用电话簿等内置功能?

Android标题栏图标大小

Android SDK 需要 ADT 版本 23 或以上

android - Telegram TDLib Android : How to store apiId and apiHash?

android - 我如何使用 adb 更改时区

java - 来自前台服务 Android 的多个通知

android - 如何判断特定的 TTS 引擎是否被选中(启用)?

electron - nodeIntegration :false 时的自定义 Electron 标题栏问题

android - 如何在android中用自定义标题覆盖默认标题