آموزش Bottom Navigation View در اندروید
سلام دوستان گل در این بخش از آموزش اندروید به Bottom Navigation View می پردازیم در قدیم استفاده از Bottom Navigation View فقط توسط کتاب خانه های مختلف امکان پذیر بود اما گوگل پس از آپدیت کتاب خانه Desgin خود Bottom Navigation View را به آن افزود.
 خب همانطور که گفته شد باید از کتاب خانه Design گوگل استفاده شود پس خط زیر را به Gradle خود افزوده و منتظر شوید تا Sync شود.
 در صورتی که Sync انجام نشد (Failed شد ) این پست رو مطالعه کنید.
| 1 | compile 'com.android.support:design:25.0.0' | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | apply plugin: 'com.android.application' android {     compileSdkVersion 25     buildToolsVersion "24.0.1"     defaultConfig {         applicationId "com.inducesmile.androidbottomnavigationview"         minSdkVersion 14         targetSdkVersion 25         versionCode 1         versionName "1.0"         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"     }     buildTypes {         release {             minifyEnabled false             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'         }     } } dependencies {     compile fileTree(dir: 'libs', include: ['*.jar'])     androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {         exclude module: 'support-annotations'     })     compile 'com.android.support:appcompat-v7:25.0.0'     compile 'com.android.support:design:25.0.0'     compile 'com.android.support:support-v4:25.0.0'     testCompile 'junit:junit:4.12' | 
| 1 2 3 4 5 6 7 8 9 10 11 12 | <resources>     <string name="app_name">Android Bottom Navigation View</string>     <string name="menu">Menu</string>     <string name="action_search">Search</string>     <string name="action_cart">Cart</string>     <string name="action_hot_deals">Hot deals</string>     <!-- TODO: Remove or change this placeholder text -->     <string name="hello_blank_fragment">Hello blank fragment</string>     <string name="search_fragment">Search Fragment</string>     <string name="cart_fragment">Cart Fragment</string>     <string name="hot_deals_fragment">Hot Deals Fragment</string> </resources> | 
| 1 2 3 4 5 6 7 8 9 10 11 12 | <?xml version="1.0" encoding="utf-8"?> <resources>     <color name="colorPrimary">#56B900</color>     <color name="colorPrimaryDark">#289C2B</color>     <color name="colorAccent">#FF4081</color>     <color name="colorPrimaryLight">#84FF19</color>     <color name="colorWhite">#ffffff</color>     <color name="colorBlack">#000000</color>     <color name="colorDivider">#2FE897</color>     <color name="colorBorder">#a7a4a4</color>     <color name="colorExtra">#fffac1</color> </resources> | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     xmlns:app="http://schemas.android.com/apk/res-auto"     android:id="@+id/activity_main"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context="com.inducesmile.androidbottomnavigationview.MainActivity">     <FrameLayout         android:id="@+id/main_container"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:layout_above="@+id/bottom_navigation"         android:layout_alignParentTop="true">     </FrameLayout>     <android.support.design.widget.BottomNavigationView         android:id="@+id/bottom_navigation"         android:layout_width="match_parent"         android:layout_height="wrap_content"         app:itemBackground="@color/colorPrimary"         app:itemIconTint="@color/color_state_list"         app:itemTextColor="@color/color_state_list"         android:layout_alignParentBottom="true">     </android.support.design.widget.BottomNavigationView> </RelativeLayout> | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.BottomNavigationView; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; public class MainActivity extends AppCompatActivity {     private static final String TAG = MainActivity.class.getSimpleName();     private BottomNavigationView bottomNavigation;     private Fragment fragment;     private FragmentManager fragmentManager;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         bottomNavigation = (BottomNavigationView)findViewById(R.id.bottom_navigation);         bottomNavigation.inflateMenu(R.menu.bottom_menu);         fragmentManager = getSupportFragmentManager();         bottomNavigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {             @Override             public boolean onNavigationItemSelected(@NonNull MenuItem item) {                 int id = item.getItemId();                 switch (id){                     case R.id.action_search:                         fragment = new SearchFragment();                         break;                     case R.id.action_cart:                         fragment = new CartFragment();                         break;                     case R.id.action_hot_deals:                         fragment = new DealsFragment();                         break;                 }                 final FragmentTransaction transaction = fragmentManager.beginTransaction();                 transaction.replace(R.id.main_container, fragment).commit();                 return true;             }         });     } } | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?xml version="1.0" encoding="utf-8"?> <menu xmlns:tools="http://schemas.android.com/tools"     xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto">     <item         android:id="@+id/action_search"         android:title="@string/action_search"         app:showAsAction="ifRoom"         android:enabled="true"         android:icon="@drawable/ic_action_menu">     </item>     <item         android:id="@+id/action_cart"         android:title="@string/action_cart"         app:showAsAction="ifRoom"         android:enabled="true"         android:icon="@drawable/ic_action_menu">     </item>     <item         android:id="@+id/action_hot_deals"         android:title="@string/action_hot_deals"         app:showAsAction="ifRoom"         android:enabled="true"         android:icon="@drawable/ic_action_menu">     </item> </menu> | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class DealsFragment extends Fragment {     public DealsFragment() {     }     @Override     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {         return inflater.inflate(R.layout.fragment_deals, container, false);     } } <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context="com.inducesmile.androidbottomnavigationview.DealsFragment">     <TextView         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="@string/hot_deals_fragment"         android:textStyle="bold"         android:layout_gravity="center"/> </FrameLayout> | 
CARTFRAGMENT.JAVA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class CartFragment extends Fragment {     public CartFragment() {     }     @Override     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {         return inflater.inflate(R.layout.fragment_cart, container, false);     } } <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context="com.inducesmile.androidbottomnavigationview.CartFragment">     <TextView         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="@string/cart_fragment"         android:textStyle="bold"         android:layout_gravity="center"/> </FrameLayout> | 
SEARCHFRAGMENT.JAVA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class SearchFragment extends Fragment {     public SearchFragment() {     }     @Override     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {         View view = inflater.inflate(R.layout.fragment_search, container, false);         return view;     } } <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context="com.inducesmile.androidbottomnavigationview.SearchFragment">     <TextView         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_gravity="center"         android:textStyle="bold"         android:text="@string/search_fragment" /> </FrameLayout> | 
آموزش به پایان رسید انشاالله که مثل همیشه مفید بوده باشد.
 آموزش برنامه نویسی اندروید |
  آموزش برنامه نویسی اندروید |  







سلام خسته نباشین مرسی از اموزش خوبتون
این اموزششتون محدودیت خاصی نداره؟ مثلا می تونم با Bottom Navigation View به پایگاه داده وصل شم؟ کتابخونش این دسترسی به من میده؟
سلام فکر می کنم معنی محدودیت را به درستی متوجه نشدم چه ربطی دارد با Bottom Navigation View به دیتابیس وصل شد ؟!
اگر منظور شما قرار دادن دیتا های دیتابیس در Bottom Navigation View است باید بگم مشکلی ندارد چون هر صفحه در آن فرگمنت است و باید داده در فرگمنت لود شود.
موفق و موید باشید.
سلام
فونت Bottom Navigation View رو چه جوری میشه عوض کرد ؟
من از کاستوم استایل و font family استفاده کردم و نشد .
میشه مثل TabLayout یه Textview براش ست کنیم و فونت Textview رو با typeface عوض کنیم ؟