خانه اندروید

800 ساعت آموزش اختصاصی

بیش از 30 هزار دانشجو

آموزش های پروژه محور

مطالب پیشنهادی حتما مشاهده کنید :

آموزش متریال دیزاین Material Design Bottom navigation اندروید استودیو

آموزش متریال دیزاین Material Design Bottom navigation اندروید استودیو

آموزش متریال دیزاین Material Design Bottom navigation اندروید استودیو

آموزش متریال دیزاین Bottom navigaion

Bottom navigation ،توی این قسمت از آموزش متریال دیزاین از سایت خانه اندروید می خواهیم بپردازیم به باتوم نویگیشن که در بخش Navigation قرار می گیرد و شما می توانید در هرجایی که دوست داشتین قرار بدید ولی بهترین موقعیت در قسمت نویگیشن هست که به اختصار می خواهیم این قسمت رو خدمت شما عزیزان توی بخش متریال دیزاین ، آموزش بدهیم.

وقتی صحبت از متریال دیزاین می شود پای کتابخانه Design و appcompat به اندروید استودیو باز می شود و شما برای اینکه از متریال و View های آن استفاده کنید نیاز دارید که این کتابخانه رو به اندروید استودیو Bottom navigation اضافه کنید دقت کنید نیازی نیست که قند شکن رو ران کنید تا برای اضافه کردن کتابخانه های  فوق زیرا به صورت پیشفرض این مورد در قسمت Dependencies هست و کافی شما در بخش جستجو این مورد رو پیدا کنید و روی اوکی کلیک کنید تا در بخش گردل اضافه شود و یا به صورت مستقیم کتابخانه فوق را در بخش گردل وارد کنید.

و یا  از قسمت سورس پروژه خود به بخش Gradle Scripts و سپس فایل build.gradle Module: app را بازکنید.

اضافه کردن کتابخانه ها در بخش گردل :

compile 'com.android.support:design:25.3.0'

و هم چنین کتابخانه فوق که به صورت پیشفرض اضافه شده به اندروید استودیو قابلیت متریال دیزاین رو پشتیبانی می کند .

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

دقت کنید با توجه به اس دی کا موجود در پوشه Sdk اندروید استودیو کتابخانه فوق برای شما اضافه می شود و بنده چون از آخرین اس دی کا موجود استفاده می کنم به خاطر همین اس دی کا های بالا رو با آخرین ورژن موجود اضافه شده به پروژه من ، و بنده دارم از این کتابخانه ها استفاده می کنم.و اگر ورژن اس دی کا شما کمتر از موارد بالاست باید آپدیت کنید.که فیلم آموزشی  زیر پیشنهاد می شود.

حتما ببنید : فیلم آموزشی Android SDK Manager اندروید استودیو

خوب بریم سراغ آموزش Bottom navigation :

اولین کاری که انجام می دهیم منو جدیدی را طبق تصویر زیر اضافه می کنیم و ایتم های زیر را برای آن می نویسیم دقت کنید بنده سه تا تصویر هم توی بخش drawable اضافه می کنم.تا تصویر را برای دکمه های Bottom navagation قرار بدم.طبق تصاویر زیر یک منو ایجاد می کنیم.

ایجاد کردن منو اندروید استودیو

در این قسمت دایرکتوری روی menu کلیک می کنیم (انتخاب می کنیم) سپس روی اوکی کلیک می کنیم.

select- menu-values resource-Directory

پس از اینکه روی اوکی کلیک کردن در بخش rec یا سورس ها یک بخشی باعنوان menu ایجاد می شود و روی آن کلیک راست می کنیم و سپس نامی دلخواه که در اینجا بنده نام menuitems را اختصاص می دهم.

select- menu-values resource-Directory

در بخش menuitems کد زیر را برای طراحی یک منو کد نویسی می کنیم.توضیح این قسمت با اضافه کردن سورس کد فوق سه تا ایتم ایجاد میشود که در بخش drawable هم تصاویر فوق موجود هست.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="https://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/recents"
        android:title="Recents"
        android:icon="@drawable/ic_history_24dp"/>
    <item
        android:id="@+id/favorites"
        android:title="Favorites"
        android:icon="@drawable/ic_favorite_24dp"/>
    <item
        android:id="@+id/nearby"
        android:title="Nearby"
        android:icon="@drawable/ic_place_24dp"/>
</menu>

 

حال در بخش Activitymain و قسمت xml سورس کد مربوط به ایجاد کردن Bottom navigation را اضافه می کنیم.

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.rss.homeandroidir.homeandroidmaterialdesign.MainActivity">
    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottomNavigationView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:layout_editor_absoluteY="0dp"
        tools:layout_editor_absoluteX="8dp" />
</android.support.design.widget.CoordinatorLayout>

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

متریال دیزاین Material Design Bottom navigation

حال اگر قرار هست تصویر بالا رو ایجاد کنیم نیاز داریم تا یک سری استایل هم تعریف کنیم.در بخش values روی style.xml کلیک کنید و سپس استایل زیر را پیست کنید.

<style name="BottomNavigation">
    <item name="android:background">@color/indigo</item>
    <item name="itemBackground">@drawable/navigation_bar_item_bg</item>
    <item name="itemIconTint">@color/navigation_bar_txt_color</item>
    <item name="itemTextColor">@color/navigation_bar_txt_color</item>
    <item name="paddingStart">@dimen/bottom_navigation_padding</item>
    <item name="paddingEnd">@dimen/bottom_navigation_padding</item>
</style>

حال چطور استایل فوق را اضافه کنیم کافی هست در بخش اکتیویت لایویت مین Activity main سورس کد زیر را اضافه کنیم به سورس کد قبل :

 style="@style/BottomNavigation"/>
 <android.support.design.widget.BottomNavigationView android:id="@+id/bottomNavigationView" android:layout_width="match_parent" android:layout_height="wrap_content" app:menu="@menu/bottom_navigation_menu" style="@style/BottomNavigation"/>

حال می خواهیم ریپلی و یا افکتی را هم اضافه کنیم. که نحوه اضافه کردن selector هم به این صورت هست که روی drawable کلیک راست و فایل جدیدی را ایجاد کنید.و سورس کد فوق را پیست کنید.دقت کنید رنگ دلخواه خودتان را در بخش color.xml بنویسید.

<selector xmlns:android="https://schemas.android.com/apk/res/android"> 
 <item android:state_checked="false" android:color="@color/pink"/>
 <item android:color="@android:color/white"/>
</selector> 

و همان طور که در بخش کامنت ها هم ذکر شده از api 21 به بعد پشتیبان می شود.

// res/drawable, to support devices lower then 21 API
<selector xmlns:android="https://schemas.android.com/apk/res/android"> 
 <item android:state_pressed="true" android:drawable="@android:color/white"/>
 <item android:drawable="@android:color/transparent"/>
</selector>

// res/drawable-v21 folder, for devices greater or equal then 21 API
<ripple xmlns:android="https://schemas.android.com/apk/res/android" 
 android:color="@android:color/white">
</ripple>

 

و جمله آخر اگر قراره روی هر کدام از ایتم ها کلیک کنیم به اکتیویتی دلخواه ما هدایت بشه نیاز داریم که در بخش mainactivity.java سورس کد زیر را بنویسیم.

BottomNavigationView bottomNavigationView; 
// ...
bottomNavigationView.setOnNavigationItemSelectedListener(new OnNavigationItemSelectedListener() { 
 @Override
 public boolean onNavigationItemSelected(@NonNull MenuItem item) {
 if (item.getItemId() == R.id.favorites) {
 // on favorites clicked
 return true;
 }
 return false;
 }
});
BottomNavigationView navigationView; 
// ...
navigationView= (BottomNavigationView) findViewById(R.id.bottomNavigationView); 
navigationView.getMenu().getItem(itemToSelect).setChecked(true);

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

حتما ببنید : فیلم آموزش استفاده از کتابخانه Bottom bar اندروید استودیو

موفق و پیروز باشید خانه اندروید.

درباره نویسنده

جواد محمدی هستم بنیان‌گذار سایت خانه اندروید در خدمتون هستیم با آموزش و مفاهیم برنامه نویسی اندروید-نزدیک به 10 سال هست در حوزه برنامه نویسی فعالیت می کنم. مسلط به kotlin,java,flutter,php هستم . در خانه اندروید دانستی های خودم را در اختیار تمامی علاقمندان به برنامه نویسی قرار میدم.تشکر از اینکه خانه اندرورید رو دنبال می کنید.

قبل از ارسال دیدگاه

  • قبل از ارسال دیدگاه: لطفا دیدگاه خودتون رو فقط در مورد این مطلب بنویسید.سپاسگزارم.

    دیدگاه های طولانی نادیده گرفته می شوند لذا دیدگاه خودتان را در دو خط خلاصه کنید.

    دیدگاه های که شامل توهین یا متن توهین آمیز اصلا تایید نمی شود.

    به دیدگاه های بی نام و نشان که ایمیل فیک و نام فیک وارد می کنند پاسخ داده نمی شود

4 دیدگاه

  1. سعید پورداداش گفت:

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

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

  2. bahar گفت:

    سلام خسته نباشین مرسی از اموزش خوبتون
    Bottom navigaion محدودیتی از نظر دسترسی به پایگاه داده و سرور برای ما ایجاد نمی کنه ؟