Mengapa ActionBarActivity tidak digunakan lagi

121

Saya menginstal Android Studio baru-baru ini dan saya mulai mengkodekan suatu aktivitas untuk diperluas ActionBarActivitydan itu menunjukkan bahwa itu sudah tidak digunakan lagi. Jadi, bagaimana lagi cara menyiapkan bilah tindakan untuk aktivitas saya. Juga Pelatihan Memulai menggunakan ActionBarActivitytanpa membuat referensi yang sudah usang.

Degreat Yartey
sumber
16
Pada appcompat-v7-r21.1.0 logikanya agak berubah dan di atasnya ActionBarActivitysekarang AppCompatActivity. Tidak ada perbedaan antara keduanya dari sudut pandang Anda.
Eugen Pechanec
1
ActionBarActivity dihapus sejak support library 26.0.0-beta2 developer.android.com/sdk/support_api_diff/26.0.0-beta2/changes/…
ישו אוהב אותך

Jawaban:

120

ActionBar tidak digunakan lagi sejak Toolbardiperkenalkan. Toolbardapat dilihat sebagai 'superset' dari bilah tindakan mana pun. Jadi yang 'tua' ActionBarsekarang adalah contoh dari a Toolbar. Jika Anda menginginkan fungsionalitas serupa, tetapi tanpa peringatan penghentian, lakukan hal berikut:

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

Anda perlu menentukan Toolbardalam layout xml Anda:

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

Dengan fungsi baru ini, Anda dapat membuat kustom sendiri ActionBardan membiarkan Android melakukan pekerjaan berat. Buat saja tampilan kustom Anda sendiri yang membentang dari Toolbar.


Selain itu, Anda harus menggunakan AppCompatActivitysebagai ganti ActionBarActivity, ini diperkenalkan di versi terbaru pustaka appcompat. Jadi jangan lupa untuk mengupdate gradle

compile 'com.android.support:appcompat-v7:22.1.1'
Endran
sumber
9
Apakah sesederhana menukar extends ActionBarActivitydengan extends AppCompatActivity?
Ehtesh Choudhury
9
Secara internal ada beberapa perubahan, tetapi antarmukanya identik. Jadi ya, semudah mengganti jenis aktivitas.
Endran
61
Sucks bahwa wizard Android Studio masih memperluas ActionBarActivity dan kemudian memberi tahu Anda bahwa itu sudah usang. Apakah mereka bahkan berkomunikasi secara internal @Google?
Boy
Bukan Solusi Sempurna. Jawaban Anda yang diberikan untuk ActionBar bukan untuk ActionBarActivity. Saya akan menggunakan @DroidMind Solution
Shabbir Dhangot
Bagus, lebih banyak pekerjaan lagi. Sama seperti desainnya untuk mendorong semua orang menggunakan Fragmen. Prinsip desain Google sangat bagus untuk perusahaan yang memiliki 10 orang yang mengerjakan aplikasi yang sama.
Muz
67

Berikut adalah jawaban dari postingan di blog developer Android :

"ActionBarActivity sudah tidak digunakan lagi untuk mendukung AppCompatActivity baru. "

Anda dapat membaca lebih lanjut di sana.

nvinayshetty
sumber
7

Jawaban ini memberikan cara sederhana untuk menghilangkan pesan kesalahan. Anda dapat melihat sebagai tambahan bagi orang lain.

Ketika kita mengubah kelas induk Kegiatan: ActionBarActivityuntuk AppCompatActivitypesan kesalahan akan hilang.

Anda dapat mengklik di sini untuk info lebih lanjut.

Wentao Ma
sumber
1
apakah ini tampak seperti tambahan bagi orang lain?
Noah Herron