بهترین و استانداردترین روش ساخت navigation drawer چی هست
با سلام دوستان من کمی در مورد navigation drawer سردرگم شدم چون رهکارهای زیادی گفته شده مثلا من یه ویدئو که دریافت کردم میگه برای هر اکتیویتی یه لایه جدید میسازیم و داخلش navigation drawer رو درست می کنیم و فایل اصلی لایه رو داخلش اینکلود می کنیم می خواستم ببینم بهترین راه کدومه و اینکه چرا از اکتیویتی که خود گوگل داد استفاده نمیشه؟
یه راه استاندارد و مناسب که خودِ من هم از اون استفاده میکنم استفاده از ویجت های DrawerLayout و NavigationView( از پکیج support.design ) هست ( دقت کنید چون هدف از دراور لایوت قراردادن منوهایی از برنامه هست که معمولا جانبی هستند از menu.xml استفاده کنید به جای طراحی یک لایه برای اون ....)
این یه نمونه خیلی ساده اس واسه آشنایی شما : ( به این نکته هم دقت کنید که چون این ویجت ها متعلق به پکیج ساپورت دیزاین هستن حتما باید اکتیویتون AppCompatActivity و تم هم یکی از تم های AppCompat باشه...)
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true" />
</android.support.v4.widget.DrawerLayout>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:checkableBehavior="single">
<item
android:id="@+id/nav_home"
android:icon="@drawable/ic_home"
android:title="@string/nav_home"/>
<item
android:id="@+id/nav_photos"
android:icon="@drawable/ic_photo_library"
android:title="@string/nav_photos"/>
<item
android:id="@+id/nav_movies"
android:icon="@drawable/ic_action_movie"
android:title="@string/nav_movies"/>
<item
android:id="@+id/nav_notifications"
android:icon="@drawable/ic_notifications"
android:title="@string/nav_notification"/>
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings"
android:title="@string/nav_settings"/>
</group>
<item android:title="Other">
<menu>
<item
android:id="@+id/nav_about_us"
android:title="@string/nav_about_us"/>
<item
android:id="@+id/nav_privacy_policy"
android:title="@string/privacy_policy"/>
</menu>
</item>
</menu>
به این صورت حالت مجزایی بهش خواهید داد. و اینکه راحت هست . و در رابطه با اینکلود کردن. شما یه فایل منو دارین حالا نمونه اش اینجوره . یه لایه برای header هست و یه لایه که دوستمون قرار دادن ولی یه دوتا اتریبویت که ب هNavigationView که منو و هدر رو بهش اضافه میکنید.
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"
این ساخت نویگیشن دراور هم ساده اس هم کامل و بی نقص هست .
موفق باشید.
از راهنمایی کامل سایت زیر استفاده کن
و اینکه حتما از یک اکتیویتی و چند فرگمنت استفاده کن
Navigation drawer link
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .