In der Android App hat die Toolbar.setTitle-Methode keine Auswirkung - der Anwendungsname wird als Titel angezeigt

298

Ich versuche, eine einfache Anwendung mit der Bibliothek android-support-v7: 21 zu erstellen. Codefragmente

:
MainActivity.java

public class MainActivity extends ActionBarActivity {

    Toolbar mActionBarToolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);            
        mActionBarToolbar.setTitle("My title");
        setSupportActionBar(mActionBarToolbar);
}

activity_main.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar            
        android:id="@+id/toolbar_actionbar"
        android:background="@null"
        android:layout_width="match_parent"
        android:layout_height="?actionBarSize"
        android:fitsSystemWindows="true" />

</LinearLayout>

Anstelle von "Mein Titel" in der Symbolleiste wird jedoch% Anwendungsname% angezeigt.
Scheint, als hätte die setTitleMethode keine Wirkung.
Ich möchte "Mein Titel" zeigen.

UPD: Vorher styles.xmlwar:

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="windowActionBar">false</item>
</style>

Also dachte ich, dass die Aktionsleiste nicht verwendet wird. Ich füge NoActionBardem übergeordneten Stil hinzu:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="windowActionBar">false</item>
</style>

Das Problem ist jedoch nicht gelöst.

krossovochkin
quelle
4
FWIW, ich bin auf API-Level 22 und hatte das gleiche Problem, wenn ich setTitle nach dem Aufruf von setSupportActionBar aufgerufen habe, aber es hat funktioniert, wenn ich setTitle zuvor aufgerufen habe . Wie in der folgenden Antwort beschrieben, übernimmt die Aktionsleiste nach dem Aufrufen von setSupportActionBar den Besitz der Symbolleiste und Aufrufe direkt in der Symbolleiste funktionieren möglicherweise nicht. Ich erkennen , dass in der Frage , die Sie haben in der Tat Anruf setTitle vor setSupportActionBar, also wahrscheinlich dies etwas, das vor kurzem geändert hat. In jedem Fall funktioniert die Verwendung von getSupportActionBar (). SetTitle genauso gut.
JHH
Dieselbe
JoboFive
Probieren Sie es aus - "Wie wird ein Titel für Aktivität mit ToolBar festgelegt?" link.medium.com/cGVg3zVr0Z
Werder

Antworten:

558

Die Lösung gefunden:

Anstatt:

mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);            
mActionBarToolbar.setTitle("My title");
setSupportActionBar(mActionBarToolbar);

Ich benutzte:

mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);            
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle("My title");

Und es funktioniert.

krossovochkin
quelle
27
nett, aber es macht keinen Sinn, so zu arbeiten und nicht die andere ... Willkommen bei Android 101
DoruChidean
28
getSupportActionBar().setTitle("My title");kann 'java.lang.NullPointerException' produzieren
Pratik Butani
8
@PratikButani Solange die Symbolleiste vor dem Aufruf von getSupportActionBar () als setSupportActionBar () festgelegt wurde, warum könnte dies der Fall sein?
Leon
3
Aha, leicht zu lösen: assert getSupportActionBar ()! = Null;
Leon
10
Leute, habt ihr den @ RatikButani-Kommentar so oft wirklich positiv bewertet? Wenn Sie ein Stilthema ohne Aktionsleiste, aber mit einer benutzerdefinierten Support-Symbolleiste v7 verwenden und setSupportActionBar(mToolbar)natürlich vergessen, aufzurufen, erhalten Sie keine Ausnahme. Wenn Sie es aufgerufen haben, ignorieren Sie diese Meldung einfach. Lesen Sie einfach - developer.android.com/training/appbar/setting-up.html
user25
115

Für alle, die den Titel über die Symbolleiste einrichten müssenLesen Sie dies, wenn Sie einige Zeit nach dem Festlegen der SupportActionBar .

Die interne Implementierung der Support-Bibliothek prüft nur, ob die Symbolleiste zum Zeitpunkt der Einrichtung der SupportActionBar einen Titel (nicht null) hat. Wenn dies der Fall ist, wird dieser Titel anstelle des Fenstertitels verwendet. Sie können dann einen Dummy-Titel festlegen, während Sie den tatsächlichen Titel laden.

mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
mActionBarToolbar.setTitle("");
setSupportActionBar(mActionBarToolbar);

später...

mActionBarToolbar.setTitle(title);
sorianiv
quelle
Es funktioniert, aber warum es so gemacht werden muss, macht für mich keinen Sinn. Hat jemand eine Erklärung, warum das funktioniert?
Maxwell
1
@Maxwell In Anbetracht des Designs der Interaktion zwischen Aktionsleiste und Symbolleiste ist dies sinnvoll. Die Aktivität sollte einen Titel anzeigen. Wenn Sie eine Symbolleiste ohne diesen Titel bereitstellen, geht Android davon aus, dass Sie das traditionelle Titel-Steuerelement für Aktivitäten verwenden möchten.
Drew
1
mActionBarToolbar.setTitle (getResources (). getString (R.string.app_name)); wird sicherstellen, dass es einen guten Standardtitel gibt, während der magische Effekt der Antwort
beibehalten wird
@Bevor es funktioniert, sehen Sie nur, wie viele Stimmen diese Antwort hat ... Sie haben gerade etwas falsch gemacht
user25
@ user25, es hat auch schlecht für mich funktioniert, es hat einen Zurückpfeil entfernt. Dann habe ich eine andere Lösung gefunden: stackoverflow.com/a/40571324/2914140 . this.setTitle("Title"), wo this- ist ein Verweis auf eine Aktivität.
CoolMind
80

Die obige Antwort ist völlig richtig, funktioniert aber nicht für mich.

Ich habe mein Problem mit den folgenden Dingen gelöst.

Eigentlich ist mein XML so:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/confirm_order_mail_layout"
    android:layout_width="match_parent"
    android:layout_height="fill_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/confirm_order_appbar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/confirm_order_list_collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:layout_scrollFlags="scroll|enterAlways">

            <android.support.v7.widget.Toolbar
                android:id="@+id/confirm_order_toolbar_layout"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|enterAlways"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

            </android.support.v7.widget.Toolbar>
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>

Ich habe alle Optionen ausprobiert und schließlich habe ich sie gerade entfernt, CollapsingToolbarLayoutweil ich sie in diesem speziellen XMLSo My Final XML nicht verwenden muss wie folgt:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/confirm_order_mail_layout"
    android:layout_width="match_parent"
    android:layout_height="fill_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/confirm_order_appbar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/confirm_order_toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>

Jetzt müssen Sie setTitle()wie oben Antwort verwenden:

mActionBarToolbar = (Toolbar) findViewById(R.id.confirm_order_toolbar_layout);            
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle("My Title");

Jetzt Wenn Sie verwenden möchten , CollapsingToolbarLayoutund Toolbarzusammen , dann müssen Sie verwenden setTitle()vonCollapsingToolbarLayout

CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.confirm_order_mail_layout);
collapsingToolbarLayout.setTitle("My Title");

Möge es dir helfen. Danke dir.

Pratik Butani
quelle
1
Das macht Sinn, das CollapsingToolbarLayoutgelöste Problem zu entfernen
Blueware
2
Für mich funktioniert der Trick mit dem Setzen des Titels für CollapsingToolbarLayout. Vielen Dank!
Mysliwiec_tech
Kann ich den Untertitel mit ändern CollapsingToolbarLayout?
Nrofis
2
Da Ihre Symbolleiste unter CollapsingToolbarLayout verschachtelt ist, wird sie durch das Reduzieren des Symbolleistenlayouts überschrieben. Das funktioniert bei mir.
neilQ5
2
Bro du rettest mein Leben !!! Sie müssen beide setSupportActionbar festlegen, bevor Sie CollapseingToolbarLayout.seTitle ("Title") verwenden.
Jacky Chong
35

Sie können einfach einen beliebigen Aktivitätsnamen mit ändern

Acitivityname.this.setTitle("Title NAme");
Roshan Posakya
quelle
1
Oder einfach title = "Title"in Kotlin oder vielleicht this.setTitle("Title")in Java.
CoolMind
33

Versuchen Sie dies, Sie können den Titel direkt in XML definieren:

 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:title="some title"
        app:popupTheme="@style/AppTheme.PopupOverlay">
Axrorxo'ja Yodgorov
quelle
Am einfachsten, aber ich muss Titel dynamisch
anpassen
15

So legen Sie den Titel für jeden Navbar-Fragmenttitel fest

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
    myView = inflater.inflate(R.layout.second_layout, container, false);
    getActivity().setTitle("title");

    return myView;
}
Roshan Posakya
quelle
12

Versuchen Sie dies .. diese Methode funktioniert für mich .. !! hoffe es kann jemandem helfen .. !!

<android.support.v7.widget.Toolbar  
 xmlns:app="http://schemas.android.com/apk/res-auto"  
 android:id="@+id/my_awesome_toolbar"  
 android:layout_width="match_parent"  
 android:layout_height="wrap_content"  
 android:background="?attr/colorPrimary"  
 android:minHeight="?attr/actionBarSize"  
 app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >  

<TextView  
   android:id="@+id/toolbar_title"  
   android:layout_width="wrap_content"  
   android:layout_height="wrap_content"  
   android:gravity="center"  
   android:singleLine="true"  
   android:text="Toolbar Title"  
   android:textColor="@android:color/white"  
   android:textSize="18sp"  
   android:textStyle="bold" />  

</android.support.v7.widget.Toolbar>  

Versuchen Sie das folgende Snippet, um das Logo in der Symbolleiste anzuzeigen. // Zeichnbar setzen

toolbar.setLogo(ContextCompat.getDrawable(context, R.drawable.logo));

Lass mich das Ergebnis wissen.

Ragu Swaminathan
quelle
Vielen Dank, Ragu Swaminathan. Ich habe versucht, SupportActionBar aus appcompact-Aktivitäten zu implementieren, um meiner Aktivität einen Titel zu geben, konnte dies jedoch nicht tun, da ich BaseGameActivity erweitern muss. Dann gehe ich zur Symbolleiste, aber der Titel wird beim Laufen nicht angezeigt. Ihre Methode mit dem Textfeld in der Symbolleiste funktioniert. Empfehlen Sie es Menschen in der gleichen Situation
Sarun1001
In der Symbolleiste können Sie das App-Logo festlegen. Überprüfen Sie meine aktualisierte Antwort
Ragu Swaminathan
11
 getSupportActionBar().setTitle("Your Title");
Hanisha
quelle
2
Diese Antwort ist ein Stich und sollte eher ein Kommentar sein , da kurze Antworten wie diese als minderwertig angesehen werden können. Sobald Sie einen ausreichenden Ruf haben, können Sie einen Kommentar abgeben. Wenn Sie nicht genug Ruf haben, lesen Sie diesen Beitrag darüber, wie Sie einen Beitrag leisten können, wenn Sie noch nicht genug Ruf haben.
Ascripter
@ascripter es ist eine Antwort
Jemshit Iskenderov
8

Weitere Informationen finden Sie unter https://code.google.com/p/android/issues/detail?id=77763 . Anscheinend soll es so funktionieren. Sobald Sie den setSupportActionBar()Methodenaufruf aufrufen, liegt es in der Verantwortung des ActionBar-Delegaten, den Aufruf an die richtige Ansicht weiterzuleiten.

redDragonzz
quelle
1
Was ist dieser Actionbar-Delegierte? Hier funktioniert setTitle () weder für die Symbolleiste noch für die Unterstützungsaktionsleiste. Die native Aktionsleiste ist im Thema deaktiviert. Was zur Hölle ist los? Wenn nur der Quellcode-Anhang in Android Studio funktionieren würde, könnte ich das Problem selbst verfolgen!
WindRider
6

Ich habe versucht, die Symbolleiste aus dem Fragment umzubenennen

Es hat mir geholfen, ich hoffe, jemand anderem zu helfen

Activity activity = this.getActivity();
Toolbar toolbar = (Toolbar) activity.findViewById(R.id.detail_toolbar);
        if (toolbar != null) {
            activity.setTitle("Title");
        }

//toolbar.setTitle("Title"); did not give the same results

Bildschirmfoto: Geben Sie hier die Bildbeschreibung ein

Nikita G.
quelle
6

Es geht nicht nur darum .setTitle

Weitere Methoden der Support Toolbar (Appcompat v7) onCreatefunktionieren nur mit

getSupportActionBar().method()

und arbeite nicht mit mToolbar.method()

Beispiele:

getSupportActionBar().setTitle("toolbar title");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

obwohl die nächsten Methoden ohne getSupportActionBar()in gut funktionierenonCreate

mToolbar.setVisibility(View.VISIBLE);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //
    }

Problem nur mit onCreateEreignis, können Sie immer noch mToolbar.setTitle()später verwenden, anstatt zu nerven getSupportActionBar().setTitle(), zum Beispiel, wenn Sie dies hinzufügen onCreate, wird es funktionieren (weil es später ausgeführt wird, danach onCreate)

mHandler.post(new Runnable() {
    @Override
    public void run() {
        mToolbar.setTitle("toolbar title");
    }
});

Ich bevorzuge die Verwendung dieser Lösung https://stackoverflow.com/a/35430590/4548520 als https://stackoverflow.com/a/26506858/4548520, da sie bequemer zu verwenden ist, wenn Sie den Titel mehrmals ändern (in verschiedenen Funktionen) mToolbar.setTitle()als länger getSupportActionBar().setTitle()und Sie sehen keine nervige Benachrichtigung über Null-Ausnahme wie beigetSupportActionBar().setTitle()

user25
quelle
Wenn Sie den Titel mehrmals ändern möchten und eine reduzierte
user1506104
6

Für alle , die den Titel über die Toolbar einige Zeit nach dem Einstellen der SupportActionBar (@sorianiv) einrichten muss und Sie Toolbarbefindet sich in einem CollapsingToolbarLayout, dies lesen:

mToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout);
Toolbar toolbar = findViewById(R.id.toolbar);
//toolbar.setTitle(""); // no need to do this
//mToolbarLayout.setTitle("Title"); // if you need an initial title, do this instead
setSupportActionBar(toolbar);

Dann später,

mToolbarLayout.setTitle("New Title");
user1506104
quelle
5

Der Anwendungstitel wird nicht bei jeder Aktivität als Standardtitel angezeigt. Sie können bei jeder Aktivität einen anderen Titel einfügen. Fügen Sie in Ihrer Aktivitätsdatei unter onCreate einfach eine einzelne Zeile ein, um den Titel festzulegen.

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("Your Title Here");

Ändern Sie einfach den Text "Ihr Titel hier" in Ihren Text.

Mohammad Shohag
quelle
4

Verwenden Sie dies einfach in Ihrem Adapter, wobei MainActivity Ihre AppCompactActivity ist. Nennen Sie es von überall.

((MainActivity) context).getSupportActionBar().setTitle(titles.get(position));
Axay Coolmoco
quelle
4

Ich habe es geschafft mit -

toolbar.post(new Runnable() {
            @Override
            public void run() {
                toolbar.setTitle("My Title");
            }
        });
Ankit Aggarwal
quelle
1
Sie müssen nicht verwenden, postwenn Sie den Titel im UI-Thread ändern, was meiner Meinung nach in 90% der Fälle der Fall ist.
Vadim Kotov
3

Wenn Sie CollapsibleToolbarLayoutzusammen mit verwendenToolbar Sie den Titel in beiden Layouts festlegen

Legen Sie Ihre Symbolleiste als Aktionsleiste in der onCreateMethode fest

protected void setUpToolBar() {

    if (mToolbar != null) {
        ((HomeActivity) getActivity()).setSupportActionBar(mToolbar);
        mToolbar.setTitleTextColor(Color.WHITE);
        mToolbar.setTitle("List Detail");
        mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getActivity()
                        .getSupportFragmentManager().popBackStack();
            }
        });
        ((HomeActivity) getActivity()).getSupportActionBar()
                .setDisplayHomeAsUpEnabled(true);
    }
}

Aktualisieren Sie später einfach den Titel der Symbolleiste mithilfe der setTitleMethode

 mToolbar .setTitle(productFromShoppingList.getProductName()); 
 mCollapsingToolbar.setTitle(productFromShoppingList.getProductName());
Hitesh Sahu
quelle
Diese Lösung funktioniert, wenn Sie feststellen, dass Sie den Titel einmal festlegen, danach jedoch nicht mehr ändern können. Stellen Sie sicher, dass Sie den Titel der Reduzierungssymbolleiste festlegen.
Hylianpuffball
Wenn Sie den Titel nach einiger Zeit mit reduzierter
user1506104
2

Versuche dies:

XML-Code

<android.support.v7.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:id="@+id/tool_bar"
    android:background="@color/tablayout"
    android:theme="@style/ToolBarStyle"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:layout_gravity="center"
        android:id="@+id/toolbar_title"
        android:textSize="18sp"
        android:textColor="@color/white"/>
    </android.support.v7.widget.Toolbar>

Java Code

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    toolbar = (Toolbar) findViewById(R.id.tool_bar);
    toolbar_text = (TextView)findViewById(R.id.toolbar_title);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    toolbar.setLogo(R.drawable.ic_toolbar);
}
Janakipathi Chowdary
quelle
2

Wenn Sie eine statische Zeichenfolge in der Symbolleiste festlegen möchten, ist es am einfachsten, die Aktivitätsbezeichnung in AndroidManifest.xml festzulegen:

<activity android:name=".xxxxActivity"
          android:label="@string/string_id" />

Die Symbolleiste erhält diese Zeichenfolge ohne Code. (funktioniert für mich mit v27-Bibliotheken.)

Timores
quelle
2

Ich habe ein seltsames Verhalten, das Ihnen helfen kann.
Dies funktioniert, hat jedoch keine Auswirkungen nur auf onCreate:

toolbar.setTitle("title");

Versuchen Sie dies in onCreate zu verwenden:

yourActivityName.this.setTitle("title")
user2167877
quelle
2

So ändern Sie den Titel für jede Aktivität

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pizza);
    setTitle(getResources().getText(R.string.title));
}
Roshan Posakya
quelle
setTitle (R.string.title); Veranstaltung einfacher, funktioniert aber nicht
toshkinl
2
 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       //custom toolbaar
       getSupportActionBar().setTitle("Abhijeet");

    }
}
Abhi jeet
quelle
1

Obwohl dies für dieses spezielle Setup nicht sofort relevant ist, stellte ich fest, dass das Entfernen von "CollapsingToolbarLayout" aus meinem XML, das meine Symbolleiste in ein AppBarLayout einwickelte, alles funktionierte.

Also das:

      <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_height="?attr/actionBarSize"
                app:layout_scrollFlags="scroll|enterAlways"
                app:navigationIcon="@drawable/ic_arrow_back_white_24dp" />

        </android.support.design.widget.AppBarLayout>

An Stelle von:

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.design.widget.CollapsingToolbarLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/collapsingToolbar"
                android:minHeight="?attr/actionBarSize"
                app:layout_scrollFlags="enterAlways|scroll|snap">

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_height="?attr/actionBarSize"
                    app:navigationIcon="@drawable/ic_arrow_back_white_24dp" />
            </android.support.design.widget.CollapsingToolbarLayout>

        </android.support.design.widget.AppBarLayout>

Dann setze ich den Titel in onCreate der Aktivität, bevor setSupportActionBar () aufgerufen wird.

Chantell Osejo
quelle
du könntest das tun. Wenn Sie das reduzierte
user1506104
@Chantell Osejo das hat auch bei mir funktioniert, auch wenn ich das gleiche Layout verwendet habe. Danke
Paramjit Singh Rana
1

Dies kann durch Festlegen des android:labelAttributs Ihrer Aktivität in der AndroidManifest.xmlDatei erfolgen:

<activity android:name="my activity"
 android:label="The Title I'd like to display" />

Fügen Sie diese Zeile dann zu onCreate () hinzu:

getSupportActionBar().setDisplayShowTitleEnabled(true);
A-Sharabiani
quelle
0

Stellen Sie sicher, dass Sie diese Option hinzufügen:

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);
McLan
quelle
0

Die Antwort finden Sie in der Dokumentation (die Sie hier finden ):

Rufen Sie die getSupportActionBar () -Methode der Aktivität auf, um die ActionBar-Dienstprogrammmethoden zu verwenden. Diese Methode gibt einen Verweis auf ein appcompat ActionBar-Objekt zurück. Sobald Sie diese Referenz haben, können Sie eine der ActionBar-Methoden aufrufen, um die App-Leiste anzupassen. Um beispielsweise die App-Leiste auszublenden, rufen Sie ActionBar.hide () auf.

Das ist die Lösung, die Sie tatsächlich gefunden haben. Ich dachte nur daran, einen Verweis auf die offizielle Dokumentation zu geben (die anscheinend nur wenige lesen).

Ely
quelle
0

In Kotlin können Sie dies tun:

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar

class SettingsActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_settings)

        val toolbar = findViewById<Toolbar>(R.id.toolbar)
        setSupportActionBar(toolbar)
        supportActionBar?.setDisplayHomeAsUpEnabled(true)
        supportActionBar?.setTitle(R.string.title)

    }

    override fun onSupportNavigateUp() = true.also { onBackPressed() }

}
MatPag
quelle
-2

Dies geschieht, weil Sie sowohl die Symbolleiste als auch die Aktionsleiste verwenden. Da Sie die Symbolleiste jetzt als Aktionsleiste verwenden möchten, müssen Sie zunächst die vom Dekor bereitgestellte Aktionsleiste deaktivieren.

Am einfachsten ist es, wenn Sie Ihr Thema erweitern Theme.AppCompat.NoActionBar.

Paresh Mayani
quelle
Entschuldigung, ich habe die Frage falsch verstanden.
Haresh Chhelana
1
@ HareshChhelana Du hast eine Antwort gepostet, aber weißt du genau, worum es geht?
Paresh Mayani
Ich denke, welches verwandte Aktionsbalken-Kachelproblem ist, das du gegeben hast, und wenn du mir das erkennst, habe ich meine Ans gelöscht, damit du dir jetzt keine Sorgen um meinen missverstandenen Bruder machst.
Haresh Chhelana
1
@PareshMayani danke für deine Antwort, aber es löst mein Problem nicht. Bitte überprüfen Sie die aktualisierte Frage
krossovochkin