หากคุณกำลังใช้งานAppCompatActivity
และไม่ได้ใช้งานเพราะคุณไม่ต้องการรับข้อมูลอัตโนมัติActionBar
เพราะคุณต้องการแยกออกToolbar
เนื่องจากความต้องการออกแบบวัสดุของคุณและCoordinatorLayout
หรือAppBarLayout
ให้พิจารณาสิ่งนี้:
คุณยังคงสามารถใช้งานได้AppCompatActivity
โดยไม่จำเป็นต้องหยุดใช้เพื่อให้สามารถใช้ a <android.support.v7.widget.Toolbar>
ใน xml ของคุณได้ เพียงปิดสไตล์แอ็คชั่นบาร์ดังนี้:
ก่อนอื่นรับสไตล์จากหนึ่งในชุดรูปแบบ NoActionBar ที่คุณชอบในตัวคุณstyles.xml
ฉันTheme.AppCompat.Light.NoActionBar
ชอบดังนี้:
<style name="SuperCoolAppBarActivity" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">@color/primary_dark</item>
...
...
</style>
ในรายการแอพของคุณเลือกชุดรูปแบบสไตล์ลูกที่คุณเพิ่งกำหนดเช่น:
<activity
android:name=".activity.YourSuperCoolActivity"
android:label="@string/super_cool"
android:theme="@style/SuperCoolAppBarActivity">
</activity>
ใน Activity Xml ของคุณหากแถบเครื่องมือถูกกำหนดเช่นนั้น:
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
...
จากนั้นและนี่คือส่วนสำคัญคุณตั้งค่าแถบการสนับสนุนเป็น AppCompatActivity ที่คุณกำลังขยายดังนั้นแถบเครื่องมือใน xml ของคุณจะกลายเป็นแถบการกระทำ ฉันรู้สึกว่านี่เป็นวิธีที่ดีกว่าเพราะคุณสามารถทำสิ่งต่าง ๆ ที่ ActionBar อนุญาตเช่นเมนูชื่อกิจกรรมอัตโนมัติการจัดการการเลือกรายการ ฯลฯ โดยไม่ต้องใช้วิธีเพิ่มตัวจัดการการคลิกที่กำหนดเอง ฯลฯ
ในการแทนที่ onCreate ของกิจกรรมให้ทำดังนี้:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_super_cool);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//Your toolbar is now an action bar and you can use it like you always do, for example:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}