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.




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'

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


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.


1
apakah ini tampak seperti tambahan bagi orang lain?
Noah Herron
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.