यदि आप कर रहे थे का उपयोग कर AppCompatActivity
और इसे प्रयोग नहीं के रास्ते नीचे चले गए हैं, क्योंकि आप स्वत: नहीं प्राप्त करना चाहता था ActionBar
कि यह प्रदान करता है, क्योंकि आप को अलग करना चाहते हैं Toolbar
, अपने भौतिक डिज़ाइन जरूरतों और की वजह से CoordinatorLayout
या AppBarLayout
फिर, इस पर विचार करें:
आप अभी भी इसका उपयोग कर सकते हैं AppCompatActivity
, आपको इसका उपयोग बंद करने की आवश्यकता नहीं है ताकि आप <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>
आपकी गतिविधि Xml में, यदि टूलबार को इस तरह परिभाषित किया गया है:
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
...
फिर, और यह महत्वपूर्ण हिस्सा है, आप AppCompatActivity के लिए समर्थन एक्शन बार सेट कर रहे हैं जिसे आप बढ़ा रहे हैं, ताकि आपके xml में टूलबार, एक्शन बार बन जाए । मुझे लगता है कि यह एक बेहतर तरीका है, क्योंकि आप बस उन कई चीजों को कर सकते हैं जो एक्शनबार अनुमति देता है, जैसे कि मेनू, स्वचालित गतिविधि शीर्षक, आइटम चयन से निपटने, आदि पर कस्टम क्लिक हैंडलर जोड़ने के लिए सहारा के बिना।
आपकी गतिविधि के ऑनक्रिट ओवरराइड में, निम्नलिखित करें:
@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);
}