ตั้งค่าแถบแอป

ลองใช้วิธีการเขียน
Jetpack Compose เป็นชุดเครื่องมือ UI ที่แนะนำสำหรับ Android ดูวิธีเพิ่มคอมโพเนนต์ใน Compose

ในรูปแบบพื้นฐานที่สุด แถบการดำเนินการจะแสดงชื่อของกิจกรรมด้านหนึ่งและเมนูรายการเพิ่มเติมอีกด้านหนึ่ง แม้จะอยู่ในรูปแบบพื้นฐานนี้ แถบแอปจะให้ข้อมูลที่เป็นประโยชน์ แก่ผู้ใช้ และทำให้แอป Android มีรูปลักษณ์ที่สอดคล้องกัน

รูปภาพที่แสดงแถบแอปในแอป "ตอนนี้ใน Android"
รูปที่ 1 แถบแอปที่มีไอคอนการดำเนินการในแอป "พร้อมใช้งานใน Android แล้ว"

กิจกรรมทั้งหมดที่ใช้ธีมเริ่มต้นจะมี ActionBar เป็นแถบแอป เพิ่มฟีเจอร์แถบแอปลงใน ActionBar เวอร์ชันต่างๆ ของ Android ด้วยเหตุนี้ ActionBar ในตัวจึงทํางานแตกต่างกันไป ขึ้นอยู่กับเวอร์ชัน Android ที่อุปกรณ์ใช้

ในทางกลับกัน ระบบจะเพิ่มฟีเจอร์ลงในไลบรารี AppCompat ของ AndroidX เวอร์ชัน Toolbar ซึ่งหมายความว่าฟีเจอร์เหล่านั้นจะพร้อมใช้งานในอุปกรณ์ที่ใช้ไลบรารี AndroidX

ด้วยเหตุนี้ คุณจึงควรใช้คลาส Toolbar ของไลบรารี AndroidX เพื่อติดตั้งใช้งานแถบแอปของกิจกรรม การใช้แถบเครื่องมือของไลบรารี AndroidX จะทำให้ลักษณะการทํางานของแอปสอดคล้องกันในอุปกรณ์ที่หลากหลายมากที่สุด

เพิ่มแถบเครื่องมือลงในกิจกรรม

ขั้นตอนเหล่านี้อธิบายวิธีตั้งค่า Toolbar เป็นแถบแอปของกิจกรรม
  1. เพิ่มไลบรารี AndroidX ลงในโปรเจ็กต์ตามที่อธิบายไว้ในภาพรวมของ AndroidX
  2. ตรวจสอบว่ากิจกรรมขยายเวลาแล้ว AppCompatActivity

    Kotlin

    class MyActivity : AppCompatActivity() {
      // ...
    }

    Java

    public class MyActivity extends AppCompatActivity {
      // ...
    }
  3. ในไฟล์ Manifest ของแอป ให้ตั้งค่าองค์ประกอบ <application> ให้ใช้ธีม NoActionBar ของ AppCompat ตามที่แสดงในตัวอย่างต่อไปนี้ การใช้ธีมใดธีมหนึ่งเหล่านี้จะป้องกันไม่ให้แอปใช้คลาส ActionBar เนทีฟเพื่อแสดงแถบแอป
    <application
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
  4. เพิ่ม Toolbar ในเลย์เอาต์ของกิจกรรม ตัวอย่างเช่น โค้ดเลย์เอาต์ต่อไปนี้จะเพิ่ม Toolbar และทำให้ดูเหมือนลอยอยู่เหนือกิจกรรม
    <androidx.appcompat.widget.Toolbar
       android:id="@+id/my_toolbar"
       android:layout_width="match_parent"
       android:layout_height="?attr/actionBarSize"
       android:background="?attr/colorPrimary"
       android:elevation="4dp"
       android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

    ดูคำแนะนำเกี่ยวกับการยกระดับแถบแอปได้ที่ข้อกำหนดของ Material Design

    จัดตำแหน่งแถบเครื่องมือที่ด้านบนของเลย์เอาต์ของกิจกรรม เนื่องจากคุณใช้แถบเครื่องมือเป็นแถบแอป

  5. ในเมธอด onCreate() ของกิจกรรม ให้เรียกใช้เมธอด setSupportActionBar() ของกิจกรรมและส่งแถบเครื่องมือของกิจกรรมดังที่แสดงในตัวอย่างต่อไปนี้ วิธีนี้จะตั้งค่าแถบเครื่องมือเป็นแถบแอปสําหรับกิจกรรม

    Kotlin

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)
        // The Toolbar defined in the layout has the id "my_toolbar".
        setSupportActionBar(findViewById(R.id.my_toolbar))
    }

    Java

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(myToolbar);
    }

ตอนนี้แอปของคุณมีแถบการดำเนินการพื้นฐานแล้ว โดยค่าเริ่มต้น แถบการดำเนินการจะมีชื่อแอปและเมนูรายการเพิ่มเติม ซึ่งในตอนแรกจะมีรายการการตั้งค่า คุณสามารถเพิ่มการดำเนินการอื่นๆ ลงในแถบการดำเนินการและเมนูรายการเพิ่มเติมได้ ตามที่อธิบายไว้ในหัวข้อเพิ่มและจัดการการดำเนินการ

ใช้เมธอดยูทิลิตีของแถบแอป

เมื่อตั้งค่าแถบเครื่องมือเป็นแอปบาร์ของแอปติวิตีแล้ว คุณจะมีสิทธิ์เข้าถึงเมธอดยูทิลิตีที่มาจากActionBarคลาสของไลบรารี AndroidX แนวทางนี้ช่วยให้คุณทําสิ่งต่างๆ ที่มีประโยชน์ได้ เช่น ซ่อนหรือแสดงแถบแอป

หากต้องการใช้เมธอดยูทิลิตี ActionBar ให้เรียกใช้เมธอด getSupportActionBar() ของกิจกรรม เมธอดนี้จะแสดงการอ้างอิงไปยังออบเจ็กต์ AppCompat ActionBar เมื่อได้การอ้างอิงแล้ว คุณจะเรียกใช้เมธอด ActionBar ใดก็ได้เพื่อปรับแถบแอป เช่น หากต้องการซ่อนแถบแอป ให้เรียกใช้ ActionBar.hide()