بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

آموزش ساخت اکشن بار با استفاده از Toolbar

مدیریت گفتگو
CodeMaster 11 سال پیش
آخرین تغییر: 11 سال پیش

خوب همونجوری که احتمالا میدونید اکشن بار در api 21 منسوخ شده و بجاش باید از Toolbar استفاده کنیم. برای همین هم گفتم که آموزش استفاده ازش رو در انجمن قرار بدم شاید بقیه دوستان هم نیاز داشته باشند لازمه بگم که من از محیط توسعه اندروید استودیو استفاده می کنم و برای همین هم این آموزش براساس سیستم بیلد Gradle هستش اما توی اکلیپس هم خیلی فرقی نداره

 

نظرات

Ali 11 سال پیش
ممنون؛اگر براتون مقدوره cardview و recyclerview را هم آموزش بدید.

پاسخ‌ها 1

CodeMaster 11 سال پیش

در اول باید Dependency مربوط به Appcompat رو در فایل Build.Gradle باید قرار بدیم

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

خوب حالا یک فایل xml جدید برای طراحی تولبار می سازیم. فایلی که من ساختم ساختارش به این شکله

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" android:gravity="center">

<android.support.v7.widget.Toolbar
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:background="#4527a0"
android:id="@+id/toolbar"
android:fitsSystemWindows="true"
android:clipToPadding="false" android:layout_gravity="center">

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textSize="22dp"
android:textColor="#ffffff" android:gravity="center"
android:text="MyApp"
android:layout_marginLeft="8dp" android:layout_marginTop="2dp" android:layout_marginBottom="2dp"
android:layout_gravity="bottom|left"/>
</LinearLayout>

</android.support.v7.widget.Toolbar>
</LinearLayout>

سپس باید در پوشه styles.xml یک Theme جدید بسازید و مقادیر زیر رو توش بگذارید:

  <style name="Theme.Saoshyance" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowActionBar">false</item>
</style>

در واقع در این جا میایم میگیم که برنامه ما اکشن بار نداره! دقت کنید که parent تم باید حتما از خانواده NoActionBar باشه حالا هرکدوم(Appcompat، Holo، material و...)

حالا باید توی فایل xml که قراره تولبار رو توش نشون بدیم این فایل رو Include بکنیم:

 <include layout="@layout/actionbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"

/>

  و در نهایت توی اکتیوتی مورد نظر همین دو خط کد رو بنویسید  دقت کنید که اکتیویتی باید از ActionBarActivity اکستند شده باشه:

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

 و تمام حالا تولبار رو می تونید ببنید این هم یک عکس از تولباری که من ساختم

نظرات

doost_fu 11 سال پیش
ممنون از آموزش تون ، این تولبار از چه ورژن اندرویدی به بعد پشتیبانی میشه ؟ یعنی حد اقل باید API چند بزاریم ؟
CodeMaster 11 سال پیش
در واقع در api 21 که همون ورژن 5 باشه اومده ولی اگر appcompat revision 21 رو داشته باشید توی ورژن های پائین تر هم می تونید ازش استفاده کنید مثل من که روی api 11 نوشتمش
doost_fu 11 سال پیش
عناصری که داخل toolbar قرار میگرند مثل دکمه یا ... کجا باید جهت استفاده تعریف بشند ؟
CodeMaster 11 سال پیش
همونجوری که تو کد بالا هم گذاشتم داخل toolbar اگر از قسمت graphical View نتونستید در xml کدش رو بنویسید
doost_fu 11 سال پیش
منظورم اینه که مثلا اگه بخوایم داخل اکتیویتی برا دکمه عملکرد تعریف کنیم این دکمه رو کجا cast کنیم ؟ اخه توی layout خود اکتیویتی که نیست !
CodeMaster 11 سال پیش
نه مشکلی نداره چون include شده میتونید مستقیم از عناصری که تو تولبار گذاشتید استفاده کنید.
مائده 11 سال پیش
میشه در مورد فایل Build.Gradle هم توضیح بدید؟ کجا قرار داره؟ و اینکه appcompat revision 21 را چطور دانلود و استفاده کنیم؟
CodeMaster 11 سال پیش
این فایل در اندروید استودیو وجود داره و اگر از Eclipse استفاده می کنید این فایل وجود نداره. appcompat revision 21 هم اگر ورژن جدید اندروید استودیو را داشته باشید بصورت پیش فرض همراه sdk هستش در غیر اینصورت باید sdk Manager رو باز کنید و همچنین از قند شکن استفاده کنید و ورژن جدیدش رو دانلود کنید
doost_fu 11 سال پیش
داخل toolbar میشه اسلایدینگ منو هم اضافه کرد ؟ من تازه رفتم سمت actonBar که این toolbar اومده نمیدونم روی کدوم وقت بزارم !
CodeMaster 11 سال پیش
بله میشه مشکلی نداره البته داخلش که نه بلکه این جدا و اونهم جداست از همون آموزشی که آقای کاشی زاده دادند استفاده کنید

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .