7

Ich habe ein Projekt kombinieren, in dem ich gefassten:Eigenschaft Benutzerdefinierte Titel: Kann keine benutzerdefinierten Titel auf API 11 und über

  • minSdkversion bis 10 gefassten
  • MainActivity ist ein TabActivity

-Code in onCreate-Methode ist dies:

super.onCreate(savedInstanceState); 

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
setContentView(R.layout.main); 
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); 
... 

Mit früheren Einstellungen funktioniert alles gut! Aber, wenn ich minSdkVersion bis 11 oder höher gesetzt, diese Ausnahme auftritt:

android.util.AndroidRuntimeException: You cannot combine custom titles with other title features 

Ich verstehe nicht, warum geschieht dies nur die Änderung minSdkVersion. Ich rot viel über dieses Problem auf dieser Website. Ich habe versucht Einstellung:

  • Theme.NoTitleBar in Haupt Layout und nach in Manifest-Datei zu
  • ich diese drei Zeilen in allen möglichen Positionen setzen
  • Wenn ich erste Zeile ein Nullpointer Kommentar tritt auf, wenn ich auf etwas nennen meine Textview Bezug meines CustomTitle Layout
  • I Einstellung versucht, in theme.xml Datei Deklaration "windowNoTitle" = true

Da i Funktionen von API 11 nur mit bin, möchte ich Setze minSdk auf 11, bevor du App on Store lädst. Wie kann ich ?? Ich brauche Hilfe

Bearbeiten: Mit MinSdkVersion = 10 und Theme.NoTitleBar in Manifest, der gleiche Fehler auftritt. Entfernen Sie es, alles funktioniert wie zuvor. Kann jemand einen Arbeitscode (Manifest- und Aktivitätscode) zum Festlegen eines benutzerdefinierten Titels bereitstellen, wenn die API 11 oder höher ist? Thx viel

+0

Keiner kann mir helfen ?? – kinghomer

+0

Es gibt wenig Verwendung bei der Verwendung von wenig benutzten Tags, z. Jedem anderen Tag-Wert als Tag [Tag: Android] wird von niemandem gefolgt. Der Grund, warum niemand antwortet, ist vermutlich, weil Sie versuchen, genau das Gegenteil von dem zu tun, was der Fehler vorschlägt. –

Antwort

37

Von mir selbst behoben. Ich weiß nicht, warum, aber einfaches Hinzufügen in Manifest-Datei "Thema" Eigenschaft für jede Erklärung Tätigkeit, alle Werke:

Daraus:

<activity 
     android:name=".CheckActivity" 
     android:configChanges="orientation" 
     android:screenOrientation="portrait" 
</activity> 

Um dies:

<activity 
     android:name=".CheckActivity" 
     android:configChanges="orientation" 
     android:screenOrientation="portrait" 
     android:theme="@android:style/Theme" > 
</activity> 
+1

Das hat bei mir funktioniert. Ich habe gerade den android: theme = "@ andriod: style/Theme" zu meiner Aktivität hinzugefügt und es hat funktioniert. In meinem Fall war es meine Bluetooth-Aktivität! – BostonGeorge

3

@kinghomer Ich habe CUSTOM_TITLE es auf 2.2 (API 8) tatsächlich versucht. Lass mich API 11 ausprobieren und melde dich wieder!

Vorher müssen Sie Theme.NoTitleBar nicht überall machen, kann in .java Datei direkt gesteuert werden. Gib mir etwas Zeit, werde wiederkommen!

+0

ok, ich werde warten :). Thx – kinghomer

+0

Nachrichten darüber ?? – kinghomer

+0

Hey! das funktioniert! Ich habe etwas Arbeit gemacht. Gegenprobe!! – Charan

0

res/Werte-v11 defalut diesen Code verwenden:

<style name="AppBaseTheme" parent="android:Theme.Holo.Light"> 
     <!-- API 11 theme customizations can go here. --> 
</style> 

change "android: Theme.Holo.Light" auf „@android: Stil/The mir "wird gut gehen!

Tipps: Wenn Ihr Projekt nicht „res/Werte-v11“ hat, dann überprüfen Sie Ihr Projekt „lib Projekt“ verweist

0

Anders als die akzeptierte Antwort, eine andere Art und Weise gibt es diese zu lösen.

<application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/CustomTheme" > 

zuweisen Sie eine theme Zuordnung zu application in der Xml-basierten Mainifest, die für alle Aktivitäten funktionieren sollte.

0

Dieses Problem tritt auf, wenn Sie versuchen, eine benutzerdefinierte Titelleiste zusammen mit der Erweiterung Ihrer Aktivität um ActionBarActivity oder AppcomActivity hinzuzufügen. Für diese beiden Aktivitätsklassen ist bereits eine Titelleiste definiert. Also, wenn Sie versuchen, Ihre eigene benutzerdefinierte Titelleiste hinzuzufügen, entsteht ein Konflikt, welche Titelleiste zu verwenden ist - Ihre benutzerdefinierte oder die von der Aktivität zur Verfügung gestellte erweitert.

Um dieses Problem zu lösen, erweitern Sie einfach Ihre Aktivität um Activity, die keine vordefinierten Titelleisten hat, so dass Ihre ohne Konflikt akzeptiert werden.

public void MyActivy extends Activity 
{ 

    // your code 

} 
0

Habe ich nur noch android:theme="@android:style/Theme" in activity in AndroidManifest.xml Datei und es funktionierte super fine.

<activity 
     android:name=".MainActivity" 
     android:theme="@android:style/Theme" > 
</activity> 

Hoffe, dass dies auch für Sie funktioniert.