Android首选项屏幕标题栏删除

Android首选项屏幕标题栏删除,android,settings,preferenceactivity,Android,Settings,Preferenceactivity,我想去掉首选项活动中的顶部标题栏和所有子屏幕。 我现在面临的问题不是发生在果冻豆上,而是发生在旧版本上。 若我不能删除它,我想改变它的行为,这样子屏幕中的标题就不会从列表项转移 我并没有在这个屏幕上设置任何标题,文本属性是由系统从父屏幕复制的。父屏幕上的标题已由根preferencecategory上的setTitle()设置。2.3.6中存在问题 在AndroidManifest中使用此选项: android:theme="@android:style/Theme.NoTitleBar.Fu

我想去掉首选项活动中的顶部标题栏和所有子屏幕。 我现在面临的问题不是发生在果冻豆上,而是发生在旧版本上。 若我不能删除它,我想改变它的行为,这样子屏幕中的标题就不会从列表项转移

我并没有在这个屏幕上设置任何标题,文本属性是由系统从父屏幕复制的。父屏幕上的标题已由根preferencecategory上的setTitle()设置。2.3.6中存在问题


在AndroidManifest中使用此选项:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

在java文件中使用此选项:

requestWindowFeature(Window.FEATURE_NO_TITLE);

您是否可以尝试先删除标题:添加一个超级类,例如:

在FullScreenActivity中,添加方法:

    private void addFlags() {
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);


    this.getWindow().addFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN
                    | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);


    Log.d(TAG, "add flags");
}
并在创建FullScreenActivity时调用此方法

所以

你可以做你的活动,所有的子类都可以全屏显示

public class MyActivity extends FullScreenActivity

尝试此测试以解决。。。您可以为每个活动设置标题(如果没有,请使用超级类标题)。

以下内容对我很有用:

将每个首选项创建为单独的XML和单独的活动这将阻止继承此类属性

然后,您可以从父首选项调用子首选项,如下所示:

<Preference
    android:key="TODO"
    android:title="@string/TODO"
    android:summary="@string/TODO"
>
    <intent
        android:action="com.example.project.preference.child1" />
</Preference>
<activity android:name=".TODO"
    android:label="@string/TODO"
    android:theme="@style/app_theme_no_title_pref">
    <intent-filter>
        <action android:name="com.example.project.preference.child1" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
因此,在清单中,您的子偏好活动应如下所示:

<Preference
    android:key="TODO"
    android:title="@string/TODO"
    android:summary="@string/TODO"
>
    <intent
        android:action="com.example.project.preference.child1" />
</Preference>
<activity android:name=".TODO"
    android:label="@string/TODO"
    android:theme="@style/app_theme_no_title_pref">
    <intent-filter>
        <action android:name="com.example.project.preference.child1" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

正如您所注意到的,这个问题已在最近的Android版本中得到解决。这是由一个错误引起的,其中嵌套的首选项被硬编码为始终使用框架中的内部
主题
主题_NoTitleBar
。在姜饼发行后的某个时候,这家公司显然合并了

解决此错误的最简单方法(只是为了消除不需要的标题文本)是在
首选项屏幕
对象中添加
onPreferenceClickListener
,并将标题设置为null。对于您发布的代码,如下所示:

    particleSettings.setLayoutResource(R.layout.iconpreferencee);
    particleSettings.setKey("screen_preference");
    particleSettings.setTitle(Html.fromHtml("" + "Particles" + ""));
    particleSettings.setSummary(Html.fromHtml("<font color=\"#7c71d8\">"
            + "Count , type , color , size, gitter ... " + "</font>"));
    // workaround for Android bug 5351628
    particleSettings.setOnPreferenceClickListener(
            new OnPreferenceClickListener() {
                @Override
                public boolean onPreferenceClick(Preference pref) {
                    final PreferenceScreen screen = (PreferenceScreen) pref;
                    screen.getDialog().setTitle(null);
                    return false;
                }
            });
particleSettings.setLayoutResource(R.layout.iconpreferencee);
particleSettings.setKey(“屏幕设置”);
particleSettings.setTitle(Html.fromHtml(“+”粒子“+”);
particleSettings.setSummary(Html.fromHtml(“)
+“计数、类型、颜色、大小、吉特…”+“”);
//Android bug 5351628的解决方法
particleSettings.setOnPreferenceClickListener(
新建OnPreferenceClickListener(){
@凌驾
公共布尔onPreferenceClick(首选项优先){
最终首选项屏幕=(首选项屏幕)首选项;
screen.getDialog().setTitle(null);
返回false;
}
});

希望有帮助!:)

它已经设置好了,这个屏幕上的两个栏不是活动的标题栏,我的意思是这些标题栏带有来自首选项屏幕的类别名称,当我触摸粒子时,在第二个屏幕截图上,第一个屏幕截图出现的屏幕,其标题它从第一个列表上的名称转移,它与所有文本属性一起转移。我正在使用setTitle(Html.fromHtml(“一些文本和标记”))设置列表元素的字体和颜色,整个Html从列表元素布局中的“标题”位置转移到子屏幕中的标题。上传您的AndroidManifest.xml代码。您想为单个屏幕或所有活动设置全屏吗?这是全屏应用程序,我想去掉这个带有“设置”和重叠的“粒子”的蓝色,但是你的AndroidManifest.xml代码说只有一个活动,WallperSettings有完整的屏幕模式两个屏幕都是WallperSettings活动,manifest说有四个全屏活动,所有全屏都可以,这不是与窗口首选项相关的问题。
<activity android:name=".TODO"
    android:label="@string/TODO"
    android:theme="@style/app_theme_no_title_pref">
    <intent-filter>
        <action android:name="com.example.project.preference.child1" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
    particleSettings.setLayoutResource(R.layout.iconpreferencee);
    particleSettings.setKey("screen_preference");
    particleSettings.setTitle(Html.fromHtml("" + "Particles" + ""));
    particleSettings.setSummary(Html.fromHtml("<font color=\"#7c71d8\">"
            + "Count , type , color , size, gitter ... " + "</font>"));
    // workaround for Android bug 5351628
    particleSettings.setOnPreferenceClickListener(
            new OnPreferenceClickListener() {
                @Override
                public boolean onPreferenceClick(Preference pref) {
                    final PreferenceScreen screen = (PreferenceScreen) pref;
                    screen.getDialog().setTitle(null);
                    return false;
                }
            });