पीछे के बजाय टूलबार में सामग्री "करीब" बटन


82

मैंने Google के इनबॉक्स ऐप में देखा है, एक नए ईमेल की रचना करते हुए, बैक बटन (एक तीर) के बजाय टूलबार में इसका "क्लोज़" बटन है (चित्र देखें)।

इसे कैसे प्राप्त किया जा सकता है?

इनबॉक्स कम्पोजिट क्लोज बटन

जवाबों:


108

उपयोग  

this.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_close);

 

इसे पाने के लिये।

आप अपना स्वयं का करीबी आइकन बना सकते हैं या GitHub पर सेट किए गए सामग्री डिज़ाइन आइकन से प्राप्त कर सकते हैं । साथ ही, बैक एरो के रूप में क्लोज फंक्शन बनाने के लिए इस लाइन को उपरोक्त लाइन से पहले जोड़ें।

this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);

यह काम नहीं करता है। यह पीछे के तीर को नए आइकन से प्रतिस्थापित नहीं करता है, दोनों दिखाई देते हैं। इसके अलावा, इस समाधान के साथ आइकन को "colorPrimaryDark" संपत्ति नहीं मिलती है।
मार्ता रोड्रिगेज

यह काम करता है लेकिन वैसा नहीं है जैसा मैं चाहता था। मुझे "कलरप्रीमरीडार्क" के साथ बैक आइकन के रूप में काम करने की उम्मीद थी। लेकिन ऐसा लगता है कि "क्लोज़" आइकन एसडीके का हिस्सा नहीं है। धन्यवाद @AlokNair!
मार्था रोड्रिग्ज

1
ActionBarActivity और PARENT का उपयोग करते समय ठीक काम करता है। जवाब के लिए +1। धन्यवाद दोस्त!
सायजिक

7
मैंने पाया कि मुझे SetHisAsUpIndicator से पहले setDisplayHomeAsUpEnabled को कॉल करना था अन्यथा आइकन को प्रतिस्थापित नहीं किया जाएगा।
कोडशिम्प

1
और मूल में वापस कैसे बदलना है?
मिशेल फ़िनस्टीन

22

आपको प्रकट में एक माता-पिता को परिभाषित करने की आवश्यकता है, तो समर्थन के बार का उपयोग करते हुए onSupportNavigationUp () को ओवरराइड करें । इसके अलावा, आइकन पैक के लिए इस उपयोगी साइट पर जाएं : https://www.google.com/design/icons/

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

    setContentView(R.layout.yourAwesomeLayout);

    setupToolBar();    
}

private void setupToolBar() {
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

    if (toolbar == null) return;

    setSupportActionBar(toolbar);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white_24dp);
}

@Override
public boolean onSupportNavigateUp() {
    finish(); // close this activity as oppose to navigating up

    return false;
}

यहाँ छवि विवरण दर्ज करें


3
किसी भी कारण से तुम झूठे लौटे onSupportNavigateUp()? प्रलेखन का कहना है कि इसका सिर्फ एक सफल झंडा है
brainmurphy1

7

देर से उत्तर के लिए क्षमा करें। मैं तुम्हारे लिए सबसे आसान समाधान मिला । यहाँ ऊपर सभी जवाब मेरे लिए काम नहीं करता है ( because i want to use toolbar not actionBar due to theming)। इसलिए xml लेआउट के माध्यम से करीब बटन जोड़ने का प्रयास करें। और यह काम करता है।

यहाँ टूलबार (v7) के करीब बटन जोड़ने के लिए एक xml सिंटैक्स है।

app:navigationIcon="@drawable/ic_close_black_24dp"

ans यहाँ एक बाहर डाल छवि है आउटपुट छवि


कहाँ @drawable/ic_close_black_24dpसे आता है?
CACuzcatlan

@CACuzcatlan यह सिर्फ एक यादृच्छिक छवि है जो उसके ड्रॉ करने योग्य फ़ोल्डर में है। आप जो भी आइकन चुन सकते हैं।
मिककेल लार्सन

@CACuzcatlan आप इसे एंड्रॉइड स्टूडियो वेक्टर संपत्ति में पा सकते हैं।
सौरव बागची

5
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Search");
toolbar.setNavigationIcon(R.drawable.abc_ic_clear_mtrl_alpha);
setSupportActionBar(toolbar);

3

प्रकट में मूल गतिविधि को परिभाषित करने का एक विकल्प यह है कि इस उदाहरण में onOptionsItemSelected पद्धति में क्या कार्रवाई की जाए:

 @Override
public boolean onOptionsItemSelected(MenuItem item){
    switch (item.getItemId()) {
        // Respond to the action bar's Up/Home/back button
        case android.R.id.home:
            finish();
            break;
    }
    return super.onOptionsItemSelected(item);
}

-5

आप एक शैली को परिभाषित कर सकते हैं:

<style name="Theme.Toolbar.Clear">
    <item name="toolbarNavigationIcon">@drawable/abc_ic_clear_mtrl_alpha</item>
</style>

और इसे अपने विषय में उपयोग करें:

<style name="Theme.Clear">
    <item name="toolbarTheme">@style/Theme.Toolbar.Clear</item>
</style>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.