Diese Frage wurde schon einmal gestellt - aber ohne befriedigende Antwort! Also versuche ich es noch einmal.
Ich möchte meinem Application Launcher-Symbol (das auf dem Startbildschirm angezeigt wird!) Eine andere, kürzere Beschriftung geben. Es scheint, dass der Launcher sein Etikett aus dem Hauptfestabschnitt über das Etikett der Hauptaktivität bezieht, wie hier:
<activity android:name="MainActivity" android:label="@string/app_short_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Ich habe den ursprünglichen Verweis auf den Namen meiner App @ string / app_name bereits in eine andere, kürzere String-Ressource geändert.
ABER - groß ABER : Dies ändert natürlich auch den Standardtitel dieser Aktivität! Und ich wollte nicht, dass das passiert, es gibt genug Platz für einen langen Anwendungsnamen! Das erneute Setzen des langen Titels bei onCreate
Verwendung der setTitle(int)
Methode nützt auch nichts, da der Kurzname für den Benutzer für kurze Zeit sichtbar ist, aber lang genug, um es zu bemerken!
Und - bitte beantworte meine Frage nicht mit einer benutzerdefinierten Titelleiste ... Ich möchte nicht so weit gehen, nur wegen eines dummen Stringtitels! Es ist mühsam, eine benutzerdefinierte Titelleiste für so wenig Effekt zu zeichnen!
Gibt es keine einfache Möglichkeit , dem Launcher eine andere Zeichenfolge zur Anzeige zu geben? Danke für deine Antworten!
Bearbeiten: Ein weiterer Grund, warum eine benutzerdefinierte Titelleiste ein Problem ist, ist, dass sie nicht wie die Standard-Titelleiste aussieht. Ich müsste explizit Dinge tun, damit sie auf jedem Gerät gleich aussieht! Und das kann keine Lösung sein, wenn ich doch kein anderes Aussehen will!
Ich habe nach dem gleichen gesucht und hier ist, was für mich funktioniert hat.
Dies gibt Ihrem Application Launcher-Symbol einen kurzen Namen.
Um der Anwendungsleiste einen größeren Namen hinzuzufügen, müssen Sie nur Folgendes hinzufügen:
zu Ihrer Hauptaktivität Java-Datei.
quelle
showTitle
aus der entfernendisplayOptions
. Anschließend können Sie den Titel in der AktivitätonCreate
wie folgt aktivieren: this.getActionBar (). SetDisplayOptions (ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE); Dies ist besser als das Blinken des Symbolnamens, bedeutet jedoch, dass jede Aktivität in Ihrer Anwendung den Titel aktivieren muss, wenn dies erforderlich ist.setTitle(R.string.app_name);
?Die Lösung von Mark Renouf schlägt für mich fehl (mit Nexus 4 und Android 4.4). Es schlägt fehl, wenn Verknüpfungen verwendet werden. Verknüpfungen verwenden die Hauptaktivitätsbezeichnung anstelle des App-Namens. Ich habe einige Apps wie GMail und Google Keep gesehen, die gut funktionieren. Aber wenn Sie sie öffnen, fällt mir auf, dass ein Moment zwischen dem Titel leer ist und der Titel angezeigt wird (was besser zu sein scheint als der Name der App, der blinkt, bevor der Titel mit setTitle () festgelegt wird).
Hier ist die beste Lösung, die ich gefunden habe :
Erstellen Sie einen Stil, in dem die ActionBar den Titel / die Bezeichnung nicht anzeigt:
Ich verwende eine Navigationsschublade und ein Logo (weil ich ein Logo und ein Symbol für meine App verwende). Sie können alles verwenden, aber nicht showTitle . Legen Sie dann in der Datei AndroidManifest.xml das Thema für die Hauptaktivität fest:
Legen Sie dann in der onCreate () -Methode der MainActivity den Titel Ihrer Aktionsleiste fest:
Danach können Sie anrufen:
Tricky aber wert.
quelle
Dies wird wahrscheinlich nicht das befriedigen, was Sie tun möchten, aber Sie haben darüber nachgedacht, einen Begrüßungsbildschirm zu erstellen, der sehr kurz angezeigt wird (mit dem Standardtitel) und dann Ihre neue tatsächliche "Haupt" -Aktivität mit dem Titel Ihrer Wahl unter Verwendung der
setTitle(int)
Methode startet ? Ich habe dies nicht versucht, um zu sehen, ob es funktioniert, aber das könnte zu einer angenehmen Arbeit führen, die nicht die weniger nahtlose Natur dessen zeigt, was Sie erreichen wollen.quelle
Für alle, die die Support / Appcompat-Symbolleiste über die
setSupportActionBar()
Methode verwenden, kann der Aktivitätstitel in Symbolleisten-XML festgelegt werden:Dadurch werden die im Manifest festgelegten Anwendungs- und Aktivitätsbezeichnungen überschrieben.
android.support.v7.widget.Toolbar
quelle
Ich fand für dieses Problem eine Abhilfe
In
manifest.xml
Ihrem Schreiben App Namen in dem
android:label
von der Trägerrakete (Haupt-) Aktivität .Dadurch wird das Label Ihrer Hauptaktivität mit dem des App-Labels identisch. Schreiben Sie
dann in der
onCreate()
Funktion Ihrer Launcher-Aktivität (Hauptaktivität) diese AnweisungSchreiben Sie hier das Etikett, das Sie Ihrer Launcher-Aktivität (Hauptaktivität) geben möchten.
quelle
Sie können so etwas tun:
Sie müssen ein benutzerdefiniertes Layout erstellen, um den Titel zu speichern. Es könnte so einfach sein wie (
my_title.xml
in diesem Fall genannt):In Ihrer
AndroidManifest.xml
Datei müssen Sie nur den Titel für die App festlegen, der im Startsymbol angezeigt wird. Für Ihre Aktivität müssen Sie dort keinen Titel festlegen.quelle
setTitle
. :-(Der Launcher zeigt tatsächlich android: label und android: icon für Aktivitäten an, die deklarieren
Das Anwendungsetikett nützt also nichts.
quelle