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.


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


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.


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);

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.


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");

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">

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;
}

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.


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");

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.


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


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()


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");

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.


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));

4

Ich habe es geschafft mit -

toolbar.post(new Runnable() {
            @Override
            public void run() {
                toolbar.setTitle("My Title");
            }
        });

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());

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);
}

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.)


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")

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));
}

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");

    }
}

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.


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);

0

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

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);

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).


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() }

}

-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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.