W aplikacji Android metoda Toolbar.setTitle nie ma żadnego efektu - nazwa aplikacji wyświetlana jest jako tytuł

298

Próbuję utworzyć prostą aplikację przy użyciu biblioteki Android-support-v7: 21.

Fragmenty kodu:
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>

Ale zamiast „Mój tytuł” ​​na pasku narzędzi% wyświetlana jest nazwa aplikacji%.
Wydaje się, że setTitlemetoda nie ma wpływu.
Chciałbym pokazać „Mój tytuł”.

UPD: Wcześniej styles.xmlbyło:

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

Pomyślałem więc, że pasek akcji nie jest używany. Dodaję NoActionBardo stylu rodzica:

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

Ale problem nie został rozwiązany.

krossovochkin
źródło
4
FWIW, jestem na poziomie api 22, i miałem ten sam problem, jeśli wywołanie setTitle po nazywając setSupportActionBar, ale to działało jeśli wywołanie setTitle przed . Jak opisano w odpowiedzi poniżej, po wywołaniu setSupportActionBar pasek akcji przejmuje własność paska narzędzi i wywołania bezpośrednio na pasku narzędzi mogą nie działać. Zdaję sobie sprawę, że w swoim pytaniu pan zrobił w rzeczywistości wezwanie setTitle przed setSupportActionBar, więc prawdopodobnie jest to coś, co zmieniło się w ostatnim czasie. W każdym razie użycie getSupportActionBar (). SetTitle działa równie dobrze.
JHH,
To samo zapytanie zadane
JoboFive
Spróbuj - „Jak ustawić tytuł działania z paskiem narzędzi?” link.medium.com/cGVg3zVr0Z
Werder

Odpowiedzi:

558

Znaleziono rozwiązanie:

Zamiast:

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

Użyłem:

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

I to działa.

krossovochkin
źródło
27
fajny, ale nie ma sensu pracować w ten sposób, a nie drugi .... witamy na Android 101
DoruChidean
28
getSupportActionBar().setTitle("My title");może produkować „java.lang.NullPointerException”
Pratik Butani,
8
@PratikButani Dopóki pasek narzędzi jest ustawiony jako setSupportActionBar () przed wywołaniem getSupportActionBar (), dlaczego tak może być?
Leon,
3
Aha, łatwe do rozwiązania: assert getSupportActionBar ()! = Null;
Leon,
10
Chłopaki, czy tak wiele razy komentowałeś @PratikButani? Jeśli użyjesz motywu stylu bez paska akcji, ale niestandardowego paska narzędzi wsparcia v7 i zapomnisz zadzwonić setSupportActionBar(mToolbar), otrzymasz wyjątek zerowy, ale jeśli go nazwiesz , po prostu zignoruj ​​ten komunikat. Po prostu przeczytaj - developer.android.com/training/appbar/setting-up.html
user25
115

Każdy, kto musi skonfigurować tytuł za pomocą paska narzędzi, jakiś czas po ustawieniu paska SupportActionBar, zapoznaj się z tym.

Wewnętrzna implementacja biblioteki wsparcia sprawdza tylko, czy pasek narzędzi ma tytuł (nie null) w momencie konfigurowania paska SupportActionBar. Jeśli tak, to ten tytuł zostanie użyty zamiast tytułu okna. Następnie można ustawić tytuł fikcyjny podczas ładowania prawdziwego tytułu.

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

później...

mActionBarToolbar.setTitle(title);
Sorianiv
źródło
Działa, ale dlaczego tak trzeba to zrobić, nie ma dla mnie sensu. Czy ktoś ma wyjaśnienie, dlaczego to działa?
Maxwell
1
@ Maxwell Sensowne jest rozważenie projektu interakcji paska narzędzi / paska narzędzi. Aktywność powinna wyświetlać tytuł, jeśli udostępnisz pasek narzędzi bez tego tytułu, Android zakłada, że ​​chcesz mieć tradycyjną kontrolę tytułu działania.
Drew
1
mActionBarToolbar.setTitle (getResources (). getString (R.string.app_name)); zapewni dobry domyślny tytuł, zachowując ten sam magiczny efekt odpowiedzi
Eslam Sameh Ahmed
@Popóki to działa, zobacz, ile głosów ma ta odpowiedź ... właśnie zrobiłeś coś złego
25
@ user25, to również działało źle dla mnie, usunęło strzałkę wstecz. Potem znalazłem inne rozwiązanie: stackoverflow.com/a/40571324/2914140 . this.setTitle("Title"), gdzie this- oznacza odniesienie do działania.
CoolMind
80

Powyższa odpowiedź jest całkowicie prawdą, ale dla mnie nie działa.

Rozwiązałem problem z następującymi rzeczami.

Właściwie to mój XML jest taki:

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

Wypróbowałem wszystkie opcje i mimo wszystko właśnie usunąłem, CollapsingToolbarLayoutponieważ nie muszę używać w tym konkretnym, XMLwięc mój końcowy XML jest jak:

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

Teraz musisz użyć setTitle()powyższej odpowiedzi:

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

Teraz Jeśli chcesz używać CollapsingToolbarLayouti Toolbarrazem, musisz korzystać setTitle()zCollapsingToolbarLayout

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

Niech ci to pomoże. Dziękuję Ci.

Pratik Butani
źródło
1
To ma sens, usuwając CollapsingToolbarLayoutrozwiązany problem
blueware
2
Dla mnie działa trick z ustawieniem tytułu dla CollapsingToolbarLayout. Wielkie dzięki!
mysliwiec_tech
Czy mogę zmienić napisy za pomocą CollapsingToolbarLayout?
nrofis
2
Ponieważ pasek narzędzi jest zagnieżdżony pod CollapsingToolbarLayout, jest on zastępowany przez zwijanie układu paska narzędzi. To działa dla mnie.
neilQ5
2
Bro, uratuj mi życie !!! Musisz użyć setSupportActionbar przed użyciem collapsingToolbarLayout.seTitle („Tytuł”);
Jacky Chong,
35

Po prostu możesz zmienić dowolną nazwę aktywności za pomocą

Acitivityname.this.setTitle("Title NAme");
roshan posakya
źródło
1
Lub po prostu title = "Title"w Kotlinie, a może this.setTitle("Title")w Javie.
CoolMind
33

Spróbuj, możesz zdefiniować tytuł bezpośrednio w XML:

 <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
źródło
Najłatwiejsze, ale wciąż muszę dynamicznie dostosowywać tytuły, jeśli masz jakiś pomysł
aya salama,
15

Aby ustawić tytuł dla każdego tytułu fragmentu paska nawigacyjnego

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
źródło
12

Spróbuj tego ... ta metoda działa dla mnie .. !! mam nadzieję, że może komuś pomóc .. !!

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

Aby wyświetlić logo na pasku narzędzi, wypróbuj poniższy fragment kodu. // Zestaw do rysowania

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

Daj mi znać wynik.

Ragu Swaminathan
źródło
Dziękuję Ragu Swaminathan .. Próbowałem zaimplementować SupportActionBar z działania appcompact, aby nadać tytuł mojej działalności, ale nie mogłem tego zrobić, ponieważ muszę rozszerzyć BaseGameActivity. Następnie wybieram pasek narzędzi, ale tytuł nie jest wyświetlany podczas działania. Twoja metoda korzystania z pola tekstowego na pasku narzędzi działa. Polecam osobom w tej samej sytuacji
Sarun1001
pasek narzędzi ma metodę ustawiania logo aplikacji. sprawdź moją zaktualizowaną odpowiedź
Ragu Swaminathan
11
 getSupportActionBar().setTitle("Your Title");
Hanisha
źródło
2
Ta odpowiedź jest skrótem i powinna być komentarzem , ponieważ takie krótkie odpowiedzi można uznać za niskiej jakości. Gdy zdobędziesz wystarczającą reputację , będziesz mógł komentować. Jeśli nie masz wystarczającej reputacji, przeczytaj ten post, w jaki sposób przyczynić się, jeśli jeszcze nie masz wystarczającej reputacji.
ascripter
@ascripter to odpowiedź
Jemshit Iskenderov
8

Zobacz https://code.google.com/p/android/issues/detail?id=77763 . Najwyraźniej tak ma działać. Po wywołaniu wywołania setSupportActionBar()metody obowiązkiem delegata ActionBar jest przekierowanie wywołania do właściwego widoku.

redDragonzz
źródło
1
Czym jest ten delegat Actionbar? Tutaj setTitle () nie działa na pasku narzędzi ani na pasku akcji wsparcia. Natywny pasek akcji jest wyłączony w kompozycji. Co do diabła jest nie tak? Gdyby tylko załącznik kodu źródłowego działał w Android Studio, mógłbym sam wyśledzić problem!
WindRider
6

Próbowałem zmienić nazwę paska narzędzi z fragmentu

Pomogło mi to, mam nadzieję pomóc komuś innemu

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

Zrzut ekranu: wprowadź opis zdjęcia tutaj

Nikita G.
źródło
6

Nie chodzi tylko o to .setTitle

więcej metod obsługi paska narzędzi (Appcompat v7) onCreatetylko w połączeniu z

getSupportActionBar().method()

i nie pracuj z mToolbar.method()

przykłady:

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

mimo kolejnych metod działa poprawnie bez getSupportActionBar()wonCreate

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

Problem tylko ze onCreatezdarzeniem, nadal możesz użyć mToolbar.setTitle()później zamiast denerwować getSupportActionBar().setTitle(), na przykład, jeśli dodasz to w onCreatenim będzie działać (ponieważ zostanie wykonane później, później onCreate)

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

Wolę korzystać z tego rozwiązania https://stackoverflow.com/a/35430590/4548520 niż https://stackoverflow.com/a/26506858/4548520, ponieważ jeśli zmienisz tytuł wiele razy (w różnych funkcjach), wygodniej jest z niego korzystać mToolbar.setTitle()niż getSupportActionBar().setTitle()jeden i nie widzisz denerwującego powiadomienia o zerowym wyjątku, jak zgetSupportActionBar().setTitle()

użytkownik25
źródło
jeśli chcesz zmienić tytuł wiele razy i korzystając ze składanego paska narzędzi, to pomoże: stackoverflow.com/questions/26486730/…
user1506104
6

Dla każdego, kto musi skonfigurować tytuł za pomocą paska narzędzi jakiś czas po ustawieniu SupportActionBar (@sorianiv) ORAZ twój Toolbarjest w środku CollapsingToolbarLayout, przeczytaj to:

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

Potem

mToolbarLayout.setTitle("New Title");
użytkownik1506104
źródło
5

Tytuł aplikacji nie będzie wyświetlany jako domyślny tytuł dla każdego działania, możesz wstawić inny tytuł dla każdego działania. W pliku aktywności poniżej programu onCreate wystarczy wkleić pojedynczy wiersz, aby ustawić tytuł,

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

Po prostu zmień tekst „Twój tytuł tutaj” na tekst.

Mohammad Shohag
źródło
4

Po prostu użyj tego w swoim adapterze, gdzie MainActivity to AppCompactActivity. Zadzwoń z dowolnego miejsca.

((MainActivity) context).getSupportActionBar().setTitle(titles.get(position));
Axay Coolmoco
źródło
4

Zrobiłem to, używając -

toolbar.post(new Runnable() {
            @Override
            public void run() {
                toolbar.setTitle("My Title");
            }
        });
Ankit Aggarwal
źródło
1
Nie musisz go używać, postjeśli zmieniasz tytuł w wątku interfejsu użytkownika, co moim zdaniem stanowi 90% przypadków.
Vadim Kotov
3

Jeśli używasz CollapsibleToolbarLayoutrazem z Toolbartym, musisz ustawić tytuł w obu układach

ustaw swój pasek narzędzi jako pasek akcji w onCreatemetodzie

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

Później po prostu zaktualizuj tytuł paska narzędzi za pomocą setTitlemetody

 mToolbar .setTitle(productFromShoppingList.getProductName()); 
 mCollapsingToolbar.setTitle(productFromShoppingList.getProductName());
Hitesh Sahu
źródło
To rozwiązanie działa, jeśli okaże się, że możesz ustawić tytuł tylko raz, ale nie możesz go później zmienić. Upewnij się, że ustawiasz tytuł Zwijanego paska narzędzi.
Hylianpuffball
jeśli chcesz zmienić tytuł po pewnym czasie za pomocą zwijanego paska narzędzi, możesz to zrobić: stackoverflow.com/questions/26486730/…
user1506104
2

Spróbuj tego:

Kod XML

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

Kod Java

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
źródło
2

Jeśli Twoim celem jest ustawienie ciągu statycznego na pasku narzędzi, najłatwiejszym sposobem jest ustawienie etykiety aktywności w AndroidManifest.xml:

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

Pasek narzędzi otrzyma ten ciąg bez żadnego kodu. (działa dla mnie z bibliotekami v27).

Timory
źródło
2

Mam dziwne zachowanie, które może ci pomóc.
Działa, ale nie ma wpływu tylko na onCreate:

toolbar.setTitle("title");

Spróbuj użyć tego w onCreate:

yourActivityName.this.setTitle("title")
użytkownik2167877
źródło
2

Aby zmienić tytuł dla każdej innej aktywności

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pizza);
    setTitle(getResources().getText(R.string.title));
}
roshan posakya
źródło
setTitle (R.string.title); Wydarzenie łatwiejsze, ale nie działa
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
źródło
1

Chociaż nie jest to bezpośrednio związane z tą konkretną konfiguracją, odkryłem, że usunięcie „CollapsingToolbarLayout” z mojego kodu XML, który owija mój pasek narzędzi wewnątrz AppBarLayout, sprawiło, że wszystko działało.

Więc to:

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

Zamiast tego:

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

Następnie ustawiam tytuł w elemencie działania onCreate, zanim zostanie wywołana funkcja setSupportActionBar ().

Chantell Osejo
źródło
możesz to zrobić. jeśli naprawdę potrzebujesz
zwijanego
@Chantell Osejo to też działało dla mnie, nawet ja korzystałem z tego samego układu. Dzięki
Paramjit Singh Rana
1

Można to zrobić ustawiając android:labelatrybut AndroidManifest.xmlpliku w pliku:

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

A następnie dodaj ten wiersz do onCreate ():

getSupportActionBar().setDisplayShowTitleEnabled(true);
A-Sharabiani
źródło
0

Dodaj tę opcję:

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);
McLan
źródło
0

Odpowiedź znajduje się w dokumentacji (którą można znaleźć tutaj ):

Aby użyć metod narzędzia ActionBar, wywołaj metodę getSupportActionBar () działania. Ta metoda zwraca odwołanie do obiektu ActionBar appcompat. Po uzyskaniu tego odwołania możesz wywołać dowolną metodę ActionBar w celu dostosowania paska aplikacji. Na przykład, aby ukryć pasek aplikacji, wywołaj ActionBar.hide ().

To jest rozwiązanie, które naprawdę znalazłeś. Pomyślałem tylko o podaniu odniesienia do oficjalnej dokumentacji (którą najwyraźniej mało kto czyta).

Ely
źródło
0

W Kotlin możesz to zrobić:

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
źródło
-2

Dzieje się tak, ponieważ używasz zarówno paska narzędzi Toolbar, jak i ActionBar. Teraz, gdy chcesz używać paska narzędzi jako paska akcji, pierwszą rzeczą, którą musisz zrobić, to wyłączyć pasek akcji dostarczony z dekoracją.

Najprostszym sposobem jest rozszerzenie motywu Theme.AppCompat.NoActionBar.

Paresh Mayani
źródło
Przepraszam, źle zrozumiałem pytanie.
Haresh Chhelana
1
@HareshChhelana Opublikowałeś odpowiedź, ale czy wiesz, na czym dokładnie polega problem?
Paresh Mayani
Wydaje mi się, że jest to związany z paskiem akcji problem z kafelkami, który otrzymałeś i kiedy zdasz sobie z tego sprawę, usunąłem mój ans, więc teraz nie martwisz się o mojego niezrozumianego brata.
Haresh Chhelana
1
@PareshMayani dziękuję za odpowiedź, ale to nie rozwiązuje mojego problemu. Sprawdź zaktualizowane pytanie
krossovochkin