क्यों ActionBarActivity को अपदस्थ किया गया था


121

मैंने एंड्रॉइड स्टूडियो को नए सिरे से स्थापित किया और मैंने विस्तार करने के लिए एक गतिविधि को कोड करना शुरू किया ActionBarActivityऔर यह दिखाया कि यह पदावनत हो गया था। इसलिए मैं अपनी गतिविधि के लिए एक एक्शनबार कैसे स्थापित करूं। साथ ही गेटिंग स्टार्टिंग ट्रेनिंग ActionBarActivityबिना संदर्भ के उपयोग करता है कि इसे हटा दिया गया है।




16
Appcompat-v7-r21.1.0 के रूप में तर्क कुछ हद तक बदल गया है और इसके शीर्ष पर ActionBarActivityअब है AppCompatActivity। आपकी बात से इन दोनों में कोई अंतर नहीं है।
यूजेन पिंचेक

1
ActionBarActivity के बाद से समर्थन पुस्तकालय 26.0.0-beta2 निकाल दिया जाता है developer.android.com/sdk/support_api_diff/26.0.0-beta2/changes/...
ישו אוהב אותך

जवाबों:


120

ActionBar तब से हटा दिया गया है जब से Toolbarइसे पेश किया गया था। Toolbarकिसी भी एक्शन बार के 'सुपरसेट' के रूप में देखा जा सकता है। तो 'पुराना' ActionBarअब एक उदाहरण है Toolbar। यदि आप समान कार्यक्षमता चाहते हैं, लेकिन बिना किसी चेतावनी के निम्नलिखित कार्य करते हैं:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
    toolbar.setTitle(R.string.app_name);
    setSupportActionBar(toolbar);
}

आपको Toolbarअपने लेआउट xml में परिभाषित करने की आवश्यकता है :

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>

इस नई कार्यक्षमता के साथ आप अपना स्वयं का कस्टम बना सकते हैं ActionBarऔर एंड्रॉइड को भारी उठाने दे सकते हैं। बस अपना स्वयं का कस्टम दृश्य बनाएं जो इससे विस्तारित होता है Toolbar


इसके अलावा, आपको इसके AppCompatActivityबजाय का उपयोग करना चाहिए ActionBarActivity, इसे ऐप्पकॉम लाइब्रेरी के नवीनतम संस्करण में पेश किया गया था। इसलिए ढ़ाल को अपडेट करना न भूलें

compile 'com.android.support:appcompat-v7:22.1.1'

9
क्या यह उतना ही सरल है जितना कि बाहर स्वैप extends ActionBarActivityकरना extends AppCompatActivity?
एहतेश चौधरी

9
आंतरिक रूप से काफी कुछ बदलाव हैं, लेकिन इंटरफ़ेस समान है। तो हाँ, यह सिर्फ गतिविधि के प्रकार की जगह के रूप में आसान है।
Endran

61
बेकार है कि Android स्टूडियो विज़ार्ड अभी भी ActionBarActivity का विस्तार करता है और फिर बताता है कि यह पदावनत है। क्या वे आंतरिक रूप से @Google से भी संवाद करते हैं?
लड़का

बिल्कुल सही समाधान नहीं। ActionBar के लिए आपका दिया गया उत्तर ActionBarActivity के लिए नहीं। मैं @DroidMind सॉल्यूशन
शब्बीर धनगोट

महान, अधिक काम फिर से। फ्रेगमेंट का उपयोग करने के लिए सभी को प्रोत्साहित करने के लिए उनके डिजाइन के समान। Google के डिज़ाइन सिद्धांत उन कंपनियों के लिए बहुत अच्छे हैं, जिनके 10 लोग एक ही ऐप पर काम कर रहे हैं।
मुज


6

यह उत्तर त्रुटि संदेश को समाप्त करने का एक सरल तरीका देता है। आप दूसरों के लिए एक ऐड के रूप में देख सकते हैं '।

जब हम माता-पिता गतिविधि वर्ग बदलने के लिए: ActionBarActivityकरने के लिए AppCompatActivityत्रुटि संदेश गायब हो जाएगा।

अधिक जानकारी के लिए आप यहां क्लिक कर सकते हैं


1
क्या यह किसी और के लिए एक ऐड की तरह लगता है?
नूह हेरॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.