ActionBarActivity neden kullanımdan kaldırıldı?


121

Android Studio'yu yeni yükledim ve genişletmek için bir etkinlik kodlamaya başladım ActionBarActivityve kullanımdan kaldırıldığını gösterdi. Peki aktivitem için başka nasıl eylem çubuğu kurabilirim? Ayrıca Başlarken Eğitimi, ActionBarActivitykullanımdan kaldırıldığına referans vermeden kullanır .




16
Appcompat-v7-r21.1.0'dan itibaren mantık biraz değişti ve üstelik ActionBarActivityşimdi AppCompatActivity. Sizin bakış açınızdan bu ikisi arasında hiçbir fark yok.
Eugen Pechanec

Yanıtlar:


120

ActionBar kullanıma Toolbarsunulduğundan beri kullanımdan kaldırılmıştır . Toolbarherhangi bir işlem çubuğunun 'üst kümesi' olarak görülebilir. Yani 'eski' ActionBarartık a örneğidir Toolbar. Benzer işlevsellik istiyorsanız, ancak kullanımdan kaldırma uyarıları olmadan aşağıdakileri yapın:

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

ToolbarXml düzeninizde tanımlamanız gerekir :

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

Bu yeni işlevle kendi özelinizi oluşturabilir ActionBarve Android'in işin zor kısmını yapmasına izin verebilirsiniz . Sadece kendi özel görünümünüzü oluşturun Toolbar.


Ayrıca, appcompat kitaplığının en son sürümünde tanıtıldı, bunun AppCompatActivityyerine kullanmanız gerekir ActionBarActivity. Bu yüzden gradle'ı güncellemeyi unutma

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

9
Dışarı takas olarak basit olarak mı extends ActionBarActivityile extends AppCompatActivity?
Ehtesh Choudhury

9
Dahili olarak bazı değişiklikler var, ancak arayüz aynı. Yani evet, aktivite türünü değiştirmek kadar kolaydır.
Endran

61
Android Studio sihirbazının ActionBarActivity'yi genişletmeye devam ettiğini ve ardından kullanımdan kaldırıldığını size söyler. @Google ile dahili olarak iletişim kuruyorlar mı?
Boy

Mükemmel Çözüm Değil. ActionBar için verdiğiniz yanıt, ActionBarActivity için değil. @DroidMind Solution
Shabbir Dhangot

Harika, daha çok çalışın. Herkesi Parçaları kullanmaya teşvik etmek için tasarımlarıyla aynı. Google'ın tasarım ilkeleri, aynı uygulama üzerinde 10 kişinin çalıştığı şirketler için mükemmeldir.
Muz


7

Bu cevap, hata mesajını ortadan kaldırmanın basit bir yolunu sunar. Başkalarının bir eki olarak görebilirsiniz.

Biz ebeveyn Etkinlik sınıfını değiştirdiğinizde: ActionBarActivityiçin AppCompatActivityhata mesajı kaybolacaktır.

Daha fazla bilgi için buraya tıklayabilirsiniz .


1
bu başka birine bir ekleme gibi görünüyor mu?
Nuh Herron
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.