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.


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.


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

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.


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

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

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

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.


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

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.


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


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


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

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.


4

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

((MainActivity) context).getSupportActionBar().setTitle(titles.get(position));

4

Zrobiłem to, używając -

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

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

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

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


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

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

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

    }
}

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


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

0

Dodaj tę opcję:

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);

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


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

}

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.