設定アクティビティとすべての子画面のトップ タイトル バーを取り除きたい。私が今直面している問題は、ジェリービーンではなく、古いバージョンで発生します。削除できない場合は、子画面のタイトルがリスト項目から転送されないように動作を変更したいと思います。
この画面ではタイトルに何も設定しませんでした。テキスト プロパティはシステムによって親画面からコピーされました。親画面のタイトルは、ルート プリファレンス カテゴリの setTitle() によって設定されています。問題は 2.3.6 にあります


設定アクティビティとすべての子画面のトップ タイトル バーを取り除きたい。私が今直面している問題は、ジェリービーンではなく、古いバージョンで発生します。削除できない場合は、子画面のタイトルがリスト項目から転送されないように動作を変更したいと思います。
この画面ではタイトルに何も設定しませんでした。テキスト プロパティはシステムによって親画面からコピーされました。親画面のタイトルは、ルート プリファレンス カテゴリの setTitle() によって設定されています。問題は 2.3.6 にあります


これを AndroidManifest で使用します。
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
お気付きのように、この問題は最新の Android リリースで修正されています。これは、ネストされた設定が常に内部ThemeまたはTheme_NoTitleBarフレームワークのいずれかを使用するようにハードコーディングされていたバグが原因です。バグを修正したコミットは、Gingerbread のリリース後にマージされたようです。
このバグを回避する最も簡単な方法 (不要なタイトル テキストを取り除くため) はonPreferenceClickListener、PreferenceScreenオブジェクトに を追加し、タイトルを 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;
}
});
それが役に立てば幸い!:)
以下は私のために働いています:
各プリファレンスを個別の XML および個別のアクティビティとして作成してください。これにより、この種のプロパティが継承されなくなります。
次に、次のように親の設定から子の設定を呼び出すことができます。
<Preference
android:key="TODO"
android:title="@string/TODO"
android:summary="@string/TODO"
>
<intent
android:action="com.example.project.preference.child1" />
</Preference>
そして、あなたの子供の好みには、マニフェストで定義された同じアクションが必要です
<action android:name="com.example.project.preference.child1" />
com.example.project.preference.child1が一意であることを確認してください!
ここで、values/styles.xml に以下を追加します。
<style name="app_theme_no_title_pref" parent="android:Theme.Light">
<item name="android:windowNoTitle">true</item>
</style>
もちろん、android:Theme.Lightを必要なものに変更できます。
マニフェストで、これをすべての設定アクティビティ、親と子に追加します。
android:theme="@style/app_theme_no_title_pref"
したがって、マニフェストでは、子プリファレンス アクティビティは次のようになります。
<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>
最初にタイトルを削除してみてください: スーパー クラスを追加します。たとえば、次のようにします。
public class FullScreenActivity extends Activity
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 の onCreate と呼びます
そう...
アクティビティとすべてのサブクラスをフラグでフルスクリーンにすることができます。
public class MyActivity extends FullScreenActivity
これを試して解決をテストしてください...そして、すべてのアクティビティにタイトルを設定できます(そうでない場合は、スーパークラスのタイトルを使用してください)。
これをJavaファイルで使用します:
requestWindowFeature(Window.FEATURE_NO_TITLE);