BottomNavigationView?ViewPager2?Fragment底部菜單導(dǎo)航欄
正文
底部導(dǎo)航欄是通過(guò)BottomNavigationView組件結(jié)合[Fragment]實(shí)現(xiàn)的有三個(gè)按鈕的菜單導(dǎo)航欄
效果圖
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/nav_view" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="0dp" android:layout_marginEnd="0dp" android:background="?android:attr/windowBackground" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:menu="@menu/bottom_nav_menu" /> <androidx.viewpager2.widget.ViewPager2 android:id="@+id/viewPager2" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintBottom_toTopOf="@id/nav_view" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
bottom_nav_menu.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/navigation_home" android:icon="@drawable/ic_home_black_24dp" android:title="@string/title_home" /> <item android:id="@+id/navigation_dashboard" android:icon="@drawable/ic_dashboard_black_24dp" android:title="@string/title_dashboard" /> <item android:id="@+id/navigation_notifications" android:icon="@drawable/ic_notifications_black_24dp" android:title="@string/title_notifications" /> </menu>
Activity
viewPager2 = mBinding.viewPager2; navView = mBinding.navView; viewPager2.setOrientation(ViewPager2.ORIENTATION_HORIZONTAL); List<Fragment> fragments = new ArrayList<>(); fragments.add(HomeFragment.newInstance()); fragments.add(DashboardFragment.newInstance()); fragments.add(HomeFragment.newInstance()); viewPager2.setAdapter(new FragmentStateAdapter(this) { @NonNull @Override public Fragment createFragment(int position) { Fragment fragment = fragments.get(position); return fragment; } @Override public int getItemCount() { return fragments.size(); } }); viewPager2.setOffscreenPageLimit(3); viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { @Override public void onPageSelected(int position) { super.onPageSelected(position); onPagerSelected(position); } }); navView.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.navigation_home: viewPager2.setCurrentItem(0); break; case R.id.navigation_dashboard: viewPager2.setCurrentItem(1); break; case R.id.navigation_notifications: viewPager2.setCurrentItem(2); break; } return true; } }); } private void onPagerSelected(int position) { switch (position) { case 0: navView.setSelectedItemId(R.id.navigation_home); break; case 1: navView.setSelectedItemId(R.id.navigation_dashboard); break; case 2: navView.setSelectedItemId(R.id.navigation_notifications); break; } }
以上就是BottomNavigationView ViewPager2 Fragment底部菜單導(dǎo)航欄的詳細(xì)內(nèi)容,更多關(guān)于BottomNavigationView 底部菜單導(dǎo)航欄的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
android傳送照片到FTP服務(wù)器的實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了android傳送照片到FTP服務(wù)器的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Android編程實(shí)現(xiàn)圖片的上傳和下載功能示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)圖片的上傳和下載功能,涉及Android針對(duì)圖片的字節(jié)流轉(zhuǎn)換與傳輸操作相關(guān)技巧,需要的朋友可以參考下2016-10-10超精準(zhǔn)的Android手機(jī)計(jì)步器開(kāi)發(fā)
這篇文章主要為大家詳細(xì)介紹了超精準(zhǔn)的Android手機(jī)計(jì)步器開(kāi)發(fā)過(guò)程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10Android封裝的http請(qǐng)求實(shí)用工具類(lèi)
提供一個(gè)Android封裝的http請(qǐng)求實(shí)用工具類(lèi),在做ANDROID網(wǎng)絡(luò)開(kāi)發(fā)中這個(gè)經(jīng)常要用到,大家可以參考下面的工具類(lèi)修改成自己的工具2013-11-11Android自定義View之邊框文字、閃爍發(fā)光文字
這篇文章主要為大家詳細(xì)介紹了Android自定義View之邊框文字、閃爍發(fā)光文字,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01Android開(kāi)發(fā)手冊(cè)Button實(shí)現(xiàn)selector選擇器
這篇文章主要為大家介紹了Android開(kāi)發(fā)手冊(cè)Button實(shí)現(xiàn)selector選擇器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Android編程之Button控件配合Toast控件用法分析
這篇文章主要介紹了Android編程之Button控件配合Toast控件用法,結(jié)合實(shí)例形式分析了Button控件及Toast控件的功能及具體使用技巧,需要的朋友可以參考下2015-12-12