带导航抽屉的java bottomnavigationview
我想实现一个底部导航视图,其中导航抽屉作为内部元素
我设法创建了一个bottomnavigationview
和一个导航抽屉,但我不知道如何将导航抽屉放入bottomnavigationview
我的主要活动是java:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "debinf MainActivity";
//public static final String FRAGMENT_KEY = "fragment";
private BottomNavigationView bottomNavigationView;
private NavigationView navigationView;
private DrawerLayout drawerLayout;
private NavController navController;
private AppBarConfiguration appBarConfiguration;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG, "onCreate: ");
bottomNavigationView = (BottomNavigationView) findViewById(R.id.main_bottom_nav);
navigationView = (NavigationView) findViewById(R.id.main_sidebar);
drawerLayout = (DrawerLayout) findViewById(R.id.main_drawer);
setupNavigation();
}
private void setupNavigation() {
Log.i(TAG, "setupNavigation: ");
navController = Navigation.findNavController(this, R.id.main_fragment);
appBarConfiguration =
new AppBarConfiguration.Builder(R.id.navigation_friends,R.id.navigation_order,R.id.navigation_home,R.id.navigation_groups,R.id.navigation_settings,R.id.navigation_profile,R.id.navigation_all_activity) //Pass the ids of fragments from nav_graph which you dont want to show back button in toolbar
.setDrawerLayout(drawerLayout)
.build();
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration); //Setup toolbar with back button and drawer icon according to appBarConfiguration
NavigationUI.setupWithNavController(navigationView, navController);
NavigationUI.setupWithNavController(bottomNavigationView, navController);
/*
** Listener for bottomNavigation must be called after been setupWithNavController
** This command will override NavigationUI.setupWithNavController(bottomNavigationView, navController)
** and the automatic transaction between fragments is lost
* */
//bottomNavigationView.setOnNavigationItemSelectedListener(this);
//navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed() {
Log.i(TAG, "onBackPressed: ");
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
Log.i(TAG, "onBackPressed: DRAWER IS OPEN - CLOSING IT");
drawerLayout.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onSupportNavigateUp() {
Log.i(TAG, "onSupportNavigateUp: ");
// replace navigation up button with nav drawer button when on start destination
return NavigationUI.navigateUp(navController, appBarConfiguration) || super.onSupportNavigateUp();
}
我的活动是主要的。xml:
<?xml version="1.0" encoding="utf-8"?>
<安卓x.drawerlayout.widget.DrawerLayout
安卓:id="@+id/main_drawer"
xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:app="http://schemas.安卓.com/apk/res-auto"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
tools:context=".MainActivity">
<安卓x.constraintlayout.widget.ConstraintLayout
安卓:layout_width="match_parent"
安卓:layout_height="match_parent">
<fragment
安卓:id="@+id/main_fragment"
安卓:layout_width="0dp"
安卓:layout_height="0dp"
安卓:name="安卓x.navigation.fragment.NavHostFragment"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/main_bottom_nav"
app:defaultNavHost="true"
app:navGraph="@navigation/mainnav_graph"/>
<com.google.安卓.material.bottomnavigation.BottomNavigationView
安卓:id="@+id/main_bottom_nav"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/bottom_nav_menu">
</com.google.安卓.material.bottomnavigation.BottomNavigationView>
</安卓x.constraintlayout.widget.ConstraintLayout>
<com.google.安卓.material.navigation.NavigationView
安卓:id="@+id/main_sidebar"
安卓:layout_width="wrap_content"
安卓:layout_height="match_parent"
安卓:layout_gravity="start"
app:menu="@menu/drawer_menu"/>
</安卓x.drawerlayout.widget.DrawerLayout>
我的底部导航菜单。xml(bottomnavigationview中的片段):
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:安卓="http://schemas.安卓.com/apk/res/安卓">
<item
安卓:id="@+id/navigation_home"
安卓:icon="@drawable/ic_home_black_24dp"
安卓:title="@string/title_home" />
<item
安卓:id="@+id/navigation_friends"
安卓:icon="@drawable/ic_home_black_24dp"
安卓:title="@string/title_friends" />
<item
安卓:id="@+id/navigation_order"
安卓:icon="@drawable/ic_dashboard_black_24dp"
安卓:title="@string/title_order" />
</menu>
我的抽屉里有菜单。xml(抽屉中的片段):
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:安卓="http://schemas.安卓.com/apk/res/安卓">
<item
安卓:id="@+id/navigation_friends"
安卓:icon="@drawable/ic_home_black_24dp"
安卓:title="@string/title_friends" />
<item
安卓:id="@+id/navigation_order"
安卓:icon="@drawable/ic_dashboard_black_24dp"
安卓:title="@string/title_order" />
<item
安卓:id="@+id/navigation_groups"
安卓:icon="@drawable/ic_dashboard_black_24dp"
安卓:title="@string/title_groups" />
<item
安卓:id="@+id/navigation_profile"
安卓:icon="@drawable/ic_dashboard_black_24dp"
安卓:title="@string/title_profile" />
<item
安卓:id="@+id/navigation_settings"
安卓:icon="@drawable/ic_dashboard_black_24dp"
安卓:title="@string/title_settings" />
</menu>
我的主导航图。xml(所有片段):
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:app="http://schemas.安卓.com/apk/res-auto"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:id="@+id/mobile_navigation"
app:startDestination="@+id/navigation_home">
<fragment
安卓:id="@+id/navigation_home"
安卓:name="fr.spindyo.bottombarwithdrawer.ui.home.HomeFragment"
安卓:label="@string/title_home"
tools:layout="@layout/fragment_home" />
<fragment
安卓:id="@+id/navigation_friends"
安卓:name="fr.spindyo.bottombarwithdrawer.ui.friends.FriendsFragment"
安卓:label="@string/title_friends"
tools:layout="@layout/fragment_friends" />
<fragment
安卓:id="@+id/navigation_order"
安卓:name="fr.spindyo.bottombarwithdrawer.ui.order.OrderFragment"
安卓:label="@string/title_order"
tools:layout="@layout/fragment_order" />
<fragment
安卓:id="@+id/navigation_groups"
安卓:name="fr.spindyo.bottombarwithdrawer.ui.groups.GroupsFragment"
安卓:label="@string/title_groups"
tools:layout="@layout/fragment_groups" />
<fragment
安卓:id="@+id/navigation_profile"
安卓:name="fr.spindyo.bottombarwithdrawer.ui.profile.ProfileFragment"
安卓:label="@string/title_profile"
tools:layout="@layout/fragment_profile" />
<fragment
安卓:id="@+id/navigation_settings"
安卓:name="fr.spindyo.bottombarwithdrawer.ui.settings.SettingsFragment"
安卓:label="@string/title_settings"
tools:layout="@layout/fragment_settings" />
<fragment
安卓:id="@+id/navigation_all_activity"
安卓:name="fr.spindyo.bottombarwithdrawer.ui.allFragment.AllFragment"
安卓:label="@string/title_all_activity"
tools:layout="@layout/fragment_all_fragment" />
</navigation>
共 (0) 个答案