เหตุใด ActionBarActivity จึงเลิกใช้งาน


121

ฉันติดตั้ง Android Studio ใหม่และเริ่มเขียนโค้ดกิจกรรมเพื่อขยายActionBarActivityและแสดงว่าเลิกใช้งานแล้ว ฉันจะตั้งค่าแถบการทำงานสำหรับกิจกรรมของฉันได้อย่างไร นอกจากนี้การฝึกอบรมการเริ่มต้นใช้งานยังใช้ActionBarActivityโดยไม่มีการอ้างอิงว่าได้เลิกใช้แล้ว




16
ในฐานะของ AppCompat-v7-r21.1.0 ตรรกะค่อนข้างเปลี่ยนแปลงและด้านบนของที่อยู่ในขณะนี้ActionBarActivity AppCompatActivityไม่มีความแตกต่างระหว่างสองสิ่งนี้จากมุมมองของคุณ
Eugen Pechanec

1
ActionBarActivity ถูกลบออกเนื่องจากไลบรารีสนับสนุน 26.0.0-beta2 developer.android.com/sdk/support_api_diff/26.0.0-beta2/changes/…
ישואוהבאותך

คำตอบ:


120

ActionBar เลิกใช้งานนับตั้งแต่Toolbarเปิดตัว Toolbarสามารถมองเห็นได้ว่าเป็น 'superset' ของแถบการทำงานใด ๆ ดังนั้น 'เก่า' 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และปล่อยให้ Android ทำงานหนัก เพียงแค่สร้างมุมมองแบบกำหนดเองของคุณเองที่ขยายออกToolbarไป


นอกจากนี้คุณควรใช้AppCompatActivityแทนActionBarActivityมันได้รับการแนะนำในไลบรารี appcompat เวอร์ชันล่าสุด อย่าลืมอัปเดต gradle

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

9
มันง่ายเหมือนการแลกเปลี่ยนextends ActionBarActivityกับextends AppCompatActivity?
Ehtesh Choudhury

9
ภายในมีการเปลี่ยนแปลงค่อนข้างมาก แต่อินเทอร์เฟซเหมือนกัน ใช่แล้วมันง่ายพอ ๆ กับการเปลี่ยนประเภทของกิจกรรม
Endran

61
แย่มากที่ตัวช่วยสร้าง Android Studio ยังคงขยาย ActionBarActivity จากนั้นบอกคุณว่าเลิกใช้แล้ว พวกเขาสื่อสารกันภายใน @Google หรือไม่
เด็กชาย

ไม่ใช่โซลูชันที่สมบูรณ์แบบ คำตอบของคุณสำหรับ ActionBar ไม่ใช่สำหรับ ActionBarActivity ฉันจะไปกับ @DroidMind Solution
Shabbir Dhangot

เยี่ยมมากงานอีกแล้ว เช่นเดียวกับการออกแบบเพื่อสนับสนุนให้ทุกคนใช้ Fragments หลักการออกแบบของ Google เหมาะสำหรับ บริษัท ที่มี 10 คนทำงานในแอปเดียวกัน
Muz


7

คำตอบนี้ให้วิธีง่ายๆในการกำจัดข้อความแสดงข้อผิดพลาด คุณสามารถเห็นว่าเป็นส่วนเสริมของผู้อื่น

เมื่อเราเปลี่ยนผู้ปกครองกิจกรรมระดับ: ActionBarActivityจะAppCompatActivityเกิดข้อผิดพลาดจะหายไป

คุณสามารถคลิกที่นี่เพื่อดูข้อมูลเพิ่มเติม


1
สิ่งนี้ดูเหมือนเป็นการเพิ่มให้กับคนอื่นหรือไม่?
Noah Herron
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.