Araç Çubuğunda Geri Oku Görüntüle


496

Ben geçiş ediyorum ActionBariçin Toolbarbenim uygulamada. Ama görüntülemek ve üzerinde geri Arrow, ayarlanan tıklama etkinlik için nasıl bilmiyorum Toolbarben yaptığım gibi Actionbar.

resim açıklamasını buraya girin

İle ActionBarben ararım mActionbar.setDisplayHomeAsUpEnabled(true). Ama buna benzer bir yöntem yok.

Hiç kimse bu durumla karşılaştı ve bir şekilde bunu çözmenin bir yolunu buldu mu?



Kullanım getSupportActionBar () örneği burada freakyjolly.com/how-to-add-back-arrow-in-android-activity
Kod Spy

Related post - Araç Çubuğunda Geri
RBT

Yanıtlar:


900

Bir kullanıyorsanız ActionBarActivityardından kullanmak Android'i söyleyebilir Toolbarolarak ActionBarşöyle:

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);

Ve sonra

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

çalışacak. Bunu, ekli Fragmanlarda da şu ActionBarActivitiesşekilde kullanabilirsiniz:

((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);

Kullanmıyorsanız ActionBarActivitiesveya Toolbarolarak ayarlanmamış bir ok üzerindeki geri oku almak istiyorsanız SupportActionBar, aşağıdakileri kullanabilirsiniz:

mActionBar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_action_back));
mActionBar.setNavigationOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
       //What to do on back clicked
   }
});

Kullanıyorsanız android.support.v7.widget.Toolbar, aşağıdaki kodu aşağıdaki adrese eklemelisiniz AppCompatActivity:

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

12

70
Appcompat-v7'nin en son sürümünü (21.0.3 veya üstü) kullanıyorsanız, destek kitaplığında bulunan geri ok çekilebilir için R.drawable.abc_ic_ab_back_mtrl_am_alpha kullanabilirsiniz.
Taeho Kim

23
Lütfen getResources (). GetDrawable (...) kullanımının kaldırıldığını unutmayın. Bunun yerine ContextCompat.getDrawable (context, ...) kullanmalısınız.
Quentin

7
İşe yaramadı, ikisini R.drawable.abc_ic_ab_back_mtrl_am_alphade bulamıyorum R.drawable.ic_action_back.
Henrique de Sousa

10
kütüphanesinden "geri" ikonu nasıl alınır toolbar.setNavigationIcon(android.support.v7.appcompat.R.drawable.abc_ic_ab_back_material);
Bolein95

215

Çok fazla cevap görüyorum ama işte daha önce bahsedilmeyen benim. API 8+ ile çalışır.

public class DetailActivity extends AppCompatActivity

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

    // toolbar
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    // add back arrow to toolbar
    if (getSupportActionBar() != null){
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // handle arrow click here
    if (item.getItemId() == android.R.id.home) {
        finish(); // close this activity and return to preview activity (if there is any)
    }

    return super.onOptionsItemSelected(item);
}

3
Bu yalnızca Araç Çubuğunu ActionBar olarak ayarlarsanız çalışır. Bağımsız araç çubukları için değildir.
Kuffs

20
onOptionItemSelected()Bu oyla MrEngineer13'ün cevabında neleri kapsamadığını tamamlar.
Atul

2
Teşekkürler bu benim için çalıştı. Tıklama dinleyicisini kullanmaktan daha iyi görünüyor, gerçekten bağımsız araç çubuklarını umursamıyorum
Mike76

Okun rengini nasıl değiştirebilirim?
Dmitry

"Araç çubuğu" yorum satırının altındaki satırlara ihtiyacım yoktu, güzel çalışıyor.
Hack06

173

Bunu başarmanın birçok yolu var, işte benim favorim:

Yerleşim:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:navigationIcon="?attr/homeAsUpIndicator" />

Aktivite:

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // back button pressed
        }
    });

13
theme niteliğini kullanmak, bu sorudaki diğer önerilerin çoğundan çok daha iyi
Pedro Loureiro

3
kullanmak yerine içine 'onOptionsItemSelected () ` setNavigationOnClickListener()ekleyebilirsiniz case android.R.id.home:.
eugene

1
case android.R.id.homebenim için çalışmadı. bir süre aradıktan sonra cevabınız hile yaptı .. teşekkürler.
deejay

Özellikle android sisteminin varsayılan arka simgesini kullanmak istiyorsanız, bu en otantik çözümdür.
Nauman Aslam

toolbar.setNavigationOnClickListener {onBackPressed ()} kullanma
filthy_wizard

74

setNavigationIcon yöntemini araç çubuğunu kullanabilirsiniz. Android Dokümanı

mToolBar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);

mToolBar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        handleOnBackPress();
    }
});

1
Cevabınıza biraz açıklama ekleyebilir misiniz? Sadece kod cevapları SO üzerinde kaşlarını çattı.
honk

1
Unutmayın ki yöntem setNavigationOnClickListener()api seviyesi 21 ve üzeri eklenmiştir
Ali Mehrpour

3
R.drawable.abc_ic_ab_back_mtrl_am_alpha artık 23.2.0 desteğine geçti, bunun yerine kabul edilen cevabı kullanın.
Milan

25

Bir özel oluşturmak istemiyorsanız Toolbar, bunu yapabilirsiniz

public class GalleryActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        ...  
        getSupportActionBar().setTitle("Select Image");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            finish();
        }
        return super.onOptionsItemSelected(item);
    }
}                     

Senin içinde AndroidManifest.xml

<activity
    android:name=".GalleryActivity"
    android:theme="@style/Theme.AppCompat.Light">        
</activity>

Ayrıca bu koyabilirsiniz android:theme="@style/Theme.AppCompat.Light"için <aplication>tüm etkinliklere uygulamak için, etiketi

resim açıklamasını buraya girin


2
Teşekkürlerif (item.getItemId() == android.R.id.home)
Adizbek Ergashev

22
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setNavigationIcon(R.drawable.back_arrow); // your drawable
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed(); // Implemented by activity
        }
    });

Ve API 21+ için android:navigationIcon

<android.support.v7.widget.Toolbar
    android:navigationIcon="@drawable/back_arrow"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"/>

Kabul edilen cevap olmalı.
Anton Malyshev

17

Bu yöntemi Google Geliştirici Belgeleri'nden kullandım :

@Override
public void onCreate(Bundle savedInstanceState) {
  ...
  getActionBar().setDisplayHomeAsUpEnabled(true);
}

Bir boş işaretçi istisnası alırsanız, temaya bağlı olabilir. Manifest'te farklı bir tema kullanmayı deneyin veya alternatif olarak bunu kullanın:

@Override
public void onCreate(Bundle savedInstanceState) {
  ...
  getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

Sonra manifest, burada geçerli etkinlik için üst etkinliği ayarlayın:

<activity
        android:name="com.example.myapp.MyCurrentActivity"
        android:label="@string/title_activity_display_message"
     android:parentActivityName="com.example.myfirstapp.MainActivity" >
    <!-- Parent activity meta-data to support 4.0 and lower -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.myapp.MyMainActivity" />
</activity>

Umarım bu sana yardımcı olmuştur!


1
Google dokümanlar bağlantısı ve getSupportActionBar()çalıştı. Teşekkürler!
Rick

15

Eğer varsa edildi kullanarak AppCompatActivityve otomatik alamadım istediği için, kullanmadığınız yoluna aşağı gitti ActionBarsağladığı dışarı ayırmak istiyorum çünkü Toolbar, çünkü Materyal Tasarımı ihtiyaçları ve CoordinatorLayoutya AppBarLayout, o zaman, bu göz önünde bulundurun:

Hala kullanabilirsiniz, xml'de bir kullanabilmeniz için kullanmayı AppCompatActivitybırakmanız gerekmez <android.support.v7.widget.Toolbar>. İşlem çubuğu stilini aşağıdaki gibi kapatmanız yeterlidir:

İlk olarak, sizin gibi NoActionBar temalarından birinden bir stil elde edin styles.xml, şöyle kullandım Theme.AppCompat.Light.NoActionBar:

<style name="SuperCoolAppBarActivity" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>

    <!-- colorPrimaryDark is used for the status bar -->
    <item name="colorPrimaryDark">@color/primary_dark</item>
    ...
    ...
</style>

Uygulamanızın bildiriminde, tanımladığınız çocuk stili temasını şu şekilde seçin:

    <activity
        android:name=".activity.YourSuperCoolActivity"
        android:label="@string/super_cool"
        android:theme="@style/SuperCoolAppBarActivity">
    </activity>

Etkinlik Xml'inizde, araç çubuğu şu şekilde tanımlanırsa:

...
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        />
...

Sonra, bu önemli bir parçası, sen ayarlamak için xml araç çubuğu, böylece, sen uzanan olduğunuzu AppCompatActivity destek Eylem çubuğunu olur işlem çubuğu. Bunun daha iyi bir yol olduğunu düşünüyorum, çünkü özel tıklama işleyicileri eklemeye başvurmadan, menüler, otomatik etkinlik başlığı, öğe seçimi işleme vb.Gibi ActionBar'ın izin verdiği birçok şeyi basitçe yapabilirsiniz.

Etkinliğinizin onCreate geçersiz kılmasında aşağıdakileri yapın:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_super_cool);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

    setSupportActionBar(toolbar);
    //Your toolbar is now an action bar and you can use it like you always do, for example:
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} 

8
MyActivity extends AppCompatActivity {

    private Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        toolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        toolbar.setNavigationOnClickListener(arrow -> onBackPressed());
    }

Retrolambda kullanabilirsiniz.
Artemiy

Bu ne var ve çalışmıyor. anlayamıyorum.
filthy_wizard

7

Araç çubuğunda düğmeyi göstermenin basit ve kolay yolu

Bu kodu onCreate yöntemine yapıştırın

 if (getSupportActionBar() != null){

            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setDisplayShowHomeEnabled(true);
        }

Bu geçersiz kılma yöntemini onCreate yönteminin dışına yapıştırın

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId()== android.R.id.home) {

        finish();
    }
    return super.onOptionsItemSelected(item);
}

7

Kotlin’de

private fun setupToolbar(){
    toolbar.title = getString(R.string.YOUR_TITLE)
    setSupportActionBar(toolbar)
    supportActionBar?.setDisplayHomeAsUpEnabled(true)
    supportActionBar?.setDisplayShowHomeEnabled(true)
}

// don't forget click listener for back button
override fun onSupportNavigateUp(): Boolean {
    onBackPressed()
    return true
}


5

In AppCompatActivityörneğin yapabileceğiniz

public class GrandStatActivity extends AppCompatActivity {

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

    @Override
    public void onResume() {
        super.onResume();

        // Display custom title
        ActionBar actionBar = this.getSupportActionBar();
        actionBar.setTitle(R.string.fragment_title_grandstats);

        // Display the back arrow
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }

    // Back arrow click event to go to the parent Activity
    @Override
    public boolean onSupportNavigateUp() {
        onBackPressed();
        return true;
    }

}

4

Geri düğmesi eklemek istediğiniz etkinlik için bildirim dosyanızda android özelliğini kullanacağız : parentActivityName

        <activity
        android:name=".WebActivity"
        android:screenOrientation="portrait"
        android:parentActivityName=".MainActivity"
        />

PS Bu özellik API Seviye 16'da tanıtıldı.


3

Bu mükemmel çalıştı

public class BackButton extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.chat_box);
        Toolbar chatbox_toolbar=(Toolbar)findViewById(R.id.chat_box_toolbar);
        chatbox_toolbar.setTitle("Demo Back Button");
        chatbox_toolbar.setTitleTextColor(getResources().getColor(R.color.white));
        setSupportActionBar(chatbox_toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        chatbox_toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //Define Back Button Function
            }
        });
    }
}

3

İlk olarak, araç çubuğunu başlatmanız gerekir:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

ardından işlem çubuğundan geri düğmesini arayın:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

2

SupportActionBar'ınız olarak ayarlanmayan bir Araç Çubuğunda geri oku almak istiyorsanız:

(KOTLIN)

val resId = getResIdFromAttribute(toolbar.context, android.R.attr.homeAsUpIndicator)
toolbarFilter.navigationIcon = ContextCompat.getDrawable(toolbar.context, resId)
toolbarFilter.setNavigationOnClickListener { fragmentManager?.popBackStack() }

özniteliklerden res almak için:

@AnyRes
fun getResIdFromAttribute(context: Context, @AttrRes attr: Int): Int {
    if (attr == 0) return 0
    val typedValueAttr = TypedValue()
    context.theme.resolveAttribute(attr, typedValueAttr, true)
    return typedValueAttr.resourceId
}

1

Bunu mizanpaj klasöründeki etkinliğin xml dosyasına ekleyin:

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">
    <android.support.v7.widget.Toolbar
        android:id="@+id/prod_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>

Araç çubuğunu tıklanabilir yapın, bunları onCreate yöntemine ekleyin:

Toolbar toolbar = (Toolbar) findViewById(R.id.prod_toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        finish();
    }
});

1

Yukarı simgesini temanızdan almanın daha güvenilir bir yolu (araç çubuğunu işlem çubuğunuz olarak kullanmıyorsanız):

toolbar.navigationIcon = context.getDrawableFromAttribute(R.attr.homeAsUpIndicator)

Tema niteliğini çekilebilir hale getirmek için bir uzantı işlevi kullandım:

fun Context.getDrawableFromAttribute(attributeId: Int): Drawable {
    val typedValue = TypedValue().also { theme.resolveAttribute(attributeId, it, true) }
    return resources.getDrawable(typedValue.resourceId, theme)
}

0

Eğer kullanıyorsanız DrawerLayout ile ActionBarDrawerToggle ardından göstermek için geri yerine düğmesine Menüsü , sen Faaliyetinizdeki bu kod eklemem gerekir düğmesiyle (ve tersine):

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // ...

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.application_name, R.string.application_name);
    mDrawerLayout.addDrawerListener(mDrawerToggle);

    mDrawerToggle.setHomeAsUpIndicator(R.drawable.ic_arrow_back_white_32dp);
    mDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onBackPressed(); // Or you can perform some other action here when Back button is clicked.
        }
    });
    mDrawerToggle.syncState();
    // ...
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (mDrawerToggle.onOptionsItemSelected(item))
        return true;

    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
        // ...
    }

    return super.onOptionsItemSelected(item);
}

public void showBackInToolbar(boolean isBack) {
    // Remove next line if you still want to be able to swipe to show drawer menu.
    mDrawerLayout.setDrawerLockMode(isBack ? DrawerLayout.LOCK_MODE_LOCKED_CLOSED : DrawerLayout.LOCK_MODE_UNLOCKED);
    mDrawerToggle.setDrawerIndicatorEnabled(!isBack);
    mDrawerToggle.syncState();
}

Bu nedenle , Menü düğmesi yerine Geri düğmesini göstermeniz gerektiğinde , showBackInToolbar (true) öğesini arayın ve Menü düğmesine ihtiyacınız varsa showBackInToolbar (false) öğesini arayın .

Burada geri ok (ic_arrow_back_white_32dp) oluşturabilir , Clipart bölümünde arrow_back'i arayabilirsiniz (8dp dolgu ile varsayılan 32dp kullanın). Sadece istediğiniz rengi seçin.


0

Her zaman ekleyebilir Relative layoutveya Linear LayoutGözlerinde farklı Toolbarve benzeri siz araç çubuğundaki geri simgesi veya yakın simge her yerde bir Görüntü görünümünü yerleştirmek

Örneğin, araç çubuğumda Göreli düzeni kullandım

 <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar_top"
                android:layout_width="match_parent"
                android:layout_height="35dp"
                android:minHeight="?attr/actionBarSize"
                android:nextFocusDown="@id/netflixVideoGridView"
                app:layout_collapseMode="pin">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">


                    <TextView

                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Myflix"
                        android:textAllCaps="true"
                        android:textSize="19sp"
                        android:textColor="@color/red"
                        android:textStyle="bold" />


                    <ImageView
                        android:id="@+id/closeMyFlix"
                        android:layout_alignParentRight="true"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        app:srcCompat="@drawable/vector_close" />


                </RelativeLayout>

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

Ve şuna benziyor:

resim açıklamasını buraya girin

Bu görüntü görünümünde Etkinlik veya bunun gibi bir parçadan tıklama dinleyici ekleyebilirsiniz.

  closeMyFlix.setOnClickListener({
            Navigator.instance.showFireTV(  activity!!.supportFragmentManager)
        })

0

Kotlin ile şöyle oldu:

xml:

<include
android:id="@+id/tbSignToolbar "
layout="@layout/toolbar_sign_up_in"/>

Faaliyetinizde: -

setSupportActionBar(tbSignToolbar as Toolbar?)//tbSignToolbar :id of your toolbar 
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowHomeEnabled(true)

0

JetPack Gezinme kullanıyorsanız.

İşte MainActivity'nin düzeni

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                               xmlns:app="http://schemas.android.com/apk/res-auto"
                                               xmlns:tools="http://schemas.android.com/tools"
                                               android:layout_width="match_parent"
                                               android:layout_height="match_parent"
                                               tools:context=".MainActivity">

<androidx.appcompat.widget.Toolbar
        android:id="@+id/toolBar"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

</androidx.appcompat.widget.Toolbar>

<fragment
        android:id="@+id/my_nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:defaultNavHost="true"
        app:layout_constraintTop_toBottomOf="@id/toolBar"
        app:layout_constraintBottom_toTopOf="parent"
        app:navGraph="@navigation/nav_graph"/>

Etkinlik sınıfınızın onCreate () öğesinde aşağıdaki gibi araç çubuğunuzu etkinliğinizde ayarlayın.

val navHostFragment = supportFragmentManager
        .findFragmentById(R.id.my_nav_host_fragment) as NavHostFragment? ?: return

val navController = navHostFragment.findNavController()
val toolBar = findViewById<Toolbar>(R.id.toolBar)
setSupportActionBar(toolBar) // To set toolBar as ActionBar
setupActionBarWithNavController(navController)

setupActionBarWithNavController (navController) Gerekirse araç çubuğunda bir geri düğmesi oluşturur ve backButton işlevini işler. Bir CustomBack işlevselliği yazmanız gerekiyorsa, parçanızda onCreate () yönteminizde aşağıdaki gibi bir callBack oluşturun

val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {
        // Handle the back button event
    }

Belgelerden: https://developer.android.com/guide/navigation/navigation-custom-back


0

Eğer androidx.appcompat.app.AppCompatActivitysadece kullanıyorsanız:

Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

Sonra sadece Manifest.xmlüst Etkinlikte tanımlayın .

<activity
    android:name=".MyActivity"
    ...>
  <meta-data
      android:name="android.support.PARENT_ACTIVITY"
      android:value=".ParentActivity" />
</activity>

Bunun yerine a kullanıyorsanız Toolbarve özel bir davranış istiyorsanız sadece şunu kullanın:

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar" 
    app:navigationIcon="?attr/homeAsUpIndicator"
    .../>

ve Faaliyetinizde:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //....
    }
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.