这是一项活动,但是当用户选择侧面菜单片段之一时,我尝试关闭底部导航。例如,当我单击我的帐户时,底部没有隐藏。
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()){
case R.id.nav_account:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new AccountFragment()).commit();
break;
case R.id.nav_support:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new SupportFragment()).commit();
break;
case R.id.nav_aboutus:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new AboutusFragment()).commit();
break;
case R.id.nav_logout:
firebaseAuth.signOut();
startActivity(new Intent(getApplicationContext(),Signin.class));
break;
}
mDrawerlayout.closeDrawer(GravityCompat.START);
return true;
}
我希望简单的代码或添加其他活动?
这是我的布局
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".sidemenu">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/bottom_navigation"/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:menu="@menu/bottom_navigation"
android:background="?android:attr/windowBackground"/>
</RelativeLayout>
<com.google.android.material.navigation.NavigationView
app:headerLayout="@layout/header"
android:id="@+id/nav_View"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@color/white"
app:itemTextColor="@color/Black"
app:itemIconTint="@color/gray"
app:menu="@menu/drawermenu"
android:layout_gravity="start">
</com.google.android.material.navigation.NavigationView>
也许在导航或底部导航中添加了一些代码
答案 0 :(得分:2)
由于您的容器和BottomNavigation在相同的活动布局中,并且您正在使用容器作为片段。
创建一个界面
public interface IBottomBarListener{
public void showBottomBar();
public void hideBottomBar()
}
在您的活动中实现此接口,并覆盖这两种方法。
public void showBottomBar(){
// make your bottom bar visibility visible
}
public void hideBottomBar(){
// make your bottom bar visibility gone
}
现在在您的片段中声明全局变量
public IBottomBarListener listener;
现在使用onAttach()方法,初始化您的监听器
listener = (IBottomBarListener)context
现在在onCreateView()中,调用
listener.hideBottomBar() // this will hide your bottombar
同样在onDetach()方法中,如果您想再次显示底栏,
onDetach(){
listener.showBottomBar() // this will show your bottombar
}
这基本上是在片段中显示/隐藏您的底栏。因此,在您要执行此操作的所有片段中都执行相同操作。