Update: Neuestes ActionBar (Titel) Muster:
Zu Ihrer Information , ActionBar wurde in API Level 11 eingeführt. ActionBar ist eine Fensterfunktion am oberen Rand der Aktivität, die den Aktivitätstitel , die Navigationsmodi und andere interaktive Elemente wie die Suche anzeigen kann .
Ich erinnere mich genau daran, wie ich die Titelleiste angepasst und durch die Anwendung konsistent gemacht habe. So kann ich einen Vergleich mit den früheren Tagen anstellen und einige der Vorteile der Verwendung von ActionBar auflisten:
- Es bietet Ihren Benutzern eine vertraute Benutzeroberfläche für alle Anwendungen, die das System problemlos an verschiedene Bildschirmkonfigurationen anpasst.
- Entwickler müssen nicht viel Code schreiben, um den Aktivitätstitel, die Symbole und den Navigationsmodus anzuzeigen, da ActionBar bereits mit der Abstraktion der obersten Ebene ausgestattet ist.
Beispielsweise:
=> Normaler Weg,
getActionBar().setTitle("Hello world App");
getSupportActionBar().setTitle("Hello world App"); // provide compatibility to all the versions
=> Aktionsleiste anpassen,
Beispielsweise:
@Override
public void setActionBar(String heading) {
// TODO Auto-generated method stub
com.actionbarsherlock.app.ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.title_bar_gray)));
actionBar.setTitle(heading);
actionBar.show();
}
Styling der Aktionsleiste:
Die ActionBar bietet Ihnen grundlegende und vertraute Looks, Navigationsmodi und andere schnelle Aktionen. Das heißt aber nicht, dass es in jeder App gleich aussieht. Sie können es gemäß Ihren Benutzeroberflächen- und Designanforderungen anpassen. Sie müssen nur Stile und Themen definieren und schreiben.
Lesen Sie mehr unter: Styling der Aktionsleiste
Und wenn Sie Stile für ActionBar erzeugen wollen , dann dieses Style - Generator kann Tool Ihnen helfen.
================================================== ===============================
Alt: Frühere Tage:
=> Normaler Weg,
Sie können den Titel jedes Bildschirms (dh der Aktivität) ändern, indem Sie deren festlegen Android:label
<activity android:name=".Hello_World"
android:label="This is the Hello World Application">
</activity>
=> Benutzerdefiniert - Titelleiste
Wenn Sie jedoch die Titelleiste auf Ihre eigene Weise anpassen möchten, dh Want to put Image icon and custom-text
, funktioniert der folgende Code für mich:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
titlebar.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="400dp"
android:layout_height="fill_parent"
android:orientation="horizontal">
<ImageView android:id="@+id/ImageView01"
android:layout_width="57dp"
android:layout_height="wrap_content"
android:background="@drawable/icon1"/>
<TextView
android:id="@+id/myTitle"
android:text="This is my new title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@color/titletextcolor"
/>
</LinearLayout>
TitleBar.java
public class TitleBar extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final boolean customTitleSupported =
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
if (customTitleSupported) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
R.layout.titlebar);
}
final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
if (myTitleText != null) {
myTitleText.setText("NEW TITLE");
// user can also set color using "Color" and then
// "Color value constant"
// myTitleText.setBackgroundColor(Color.GREEN);
}
}
}
string.xml
Die Datei strings.xml wird unter dem values
Ordner definiert .
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Set_Text_TitleBar!</string>
<string name="app_name">Set_Text_TitleBar</string>
<color name="titlebackgroundcolor">#3232CD</color>
<color name="titletextcolor">#FFFF00</color>
</resources>
Sie können die Bezeichnung für jede Aktivität in Ihrer Manifestdatei definieren.
Eine normale Definition einer Aktivität sieht folgendermaßen aus:
Wobei Titeltext durch die ID einer Zeichenfolgenressource für diese Aktivität ersetzt werden soll.
Sie können den Titeltext auch aus dem Code festlegen, wenn Sie ihn dynamisch festlegen möchten.
Mit dieser Zeile wird der Titel in der Oncreate-Methode meiner Aktivität auf die Stadt einer bestimmten Adresse gesetzt.
quelle
Sie können Ihren Titel programmgesteuert definieren, indem
setTitle
Sie in Ihrer DateiActivity
entweder eineString
oder eine in Ihrervalues/strings.xml
Datei definierte ID akzeptieren . Beispiel:quelle
Wir können den ActionBar-Titel auf zwei Arten ändern:
Im Manifest: Legen Sie in der Manifestdatei die Bezeichnung jeder Aktivität fest.
In Code: Rufen Sie im Code die setTitle () -Methode mit einem String oder der ID von String als Argument auf.
quelle
Innerhalb des Rückrufs von Activity.onCreate () oder an einer anderen Stelle, an der Sie den Titel ändern müssen:
quelle
versuche das zu tun ...
Für mich geht das
quelle
Etwas älter, hatte aber das gleiche Problem. Ich habe es so gemacht:
string.xml
<string name="title_awesome_app">My Awesome App</string>
und stellen Sie sicher, dass Sie dies in Ihrer AndroidManifest.xml festlegen :
Es ist einfach und Sie müssen sich keine Gedanken über Null-Referenzen und andere Dinge machen.
quelle
quelle
Der einfachste Weg, den Namen der Aktionsleiste zu ändern, besteht darin, in der Datei AndroidManifest.xml diesen Code einzugeben.
quelle
Sie fügen diesen Code einfach in die
onCreate
Methode ein.quelle
Weitere Informationen finden Sie unter folgendem Link:
http://android--code.blogspot.in/2015/09/android-how-to-change-actionbar-title_21.html
quelle
Der beste Weg, um den Namen der Aktionsleiste zu ändern, besteht darin, in der Datei AndroidManifest.xml diesen Code einzugeben.
quelle
Kotlin
Sie können dies programmgesteuert in Kotlin auf diese Weise tun. Sie ignorieren es einfach, wenn "supportActionBar" null ist :
Oder so. Es wird eine Ausnahme ausgelöst, wenn "supportActionBar" null ist.
quelle
Am einfachsten ist es, anzurufen,
this.setTitle("...")
wenn Sie an der Aktivität teilnehmen. Und wenn Sie sich in einem Fragment befinden, rufen Sie einfach angetActivity().setTitle("...")
.Auf diese Weise können Sie den Titel jederzeit ändern, ohne ihn vorher aufrufen zu müssen
setContentView(R.layout.activity_test)
.quelle
Für zukünftige Entwickler, die AndroidX und die Navigationsarchitekturkomponente verwenden .
Anstatt den Symbolleistentitel mit einer der oben genannten Lösungen festzulegen, was sehr schmerzhaft sein kann, wenn Sie ihn bei einem Backstack-Wechsel dynamisch festlegen möchten, können Sie einen Platzhalter für den Titel des Fragments im Navigationsdiagramm wie folgt festlegen :
Der Platzhalterwert muss mit
FragmentDirections
(über die Aktionsmethode) angegeben werden.Es wird dann im Titel ersetzt und zeigt wie
Hello World
(wannplaceholder = "World"
).quelle
getSupportActionBar().setTitle("title");
quelle