Фрагмент не меняется при нажатии на нижнюю панель навигации - PullRequest
0 голосов
/ 28 октября 2019
public class home_fragment extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

    private AppBarConfiguration mAppBarConfiguration;
    private DrawerLayout drawer;
    private ImageView profilepic;
    private DatabaseReference mDatabaseRef;
    private FirebaseAuth mAuth;
    private StorageReference storageReference;
    FirebaseUser firebaseUser;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        mAuth=FirebaseAuth.getInstance();
        firebaseUser = mAuth.getCurrentUser();

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        drawer = findViewById(R.id.drawer_layout);
        NavigationView navigationView = findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this,drawer,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();


        BottomNavigationView navigation =  findViewById(R.id.navi_view);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);



        if (savedInstanceState==null){
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new HomeFragment()).commit();
            getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,new com.example.docsapp.HomeFragment()).commit();
        }

        UpdateNavHeader();

    }


    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.navi_home:
                    getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,new com.example.docsapp.HomeFragment()).commit();
                    break;
                case R.id.navi_favourites:
                    getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,new FavouriteFragment()).commit();
                    break;
                case R.id.navi_search:
                    getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,new SearchFragment()).commit();
                    break;
            }
            return true;
        }

    };

XML-код приведен ниже

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/navi_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?android:attr/windowBackground"
        app:menu="@menu/bottom_nav_menu"
        android:layout_alignParentBottom="true"/>

    <fragment
        android:id="@+id/nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:defaultNavHost="true" />

</RelativeLayout>

Фрагмент не изменяется при щелчке нижних элементов навигации. Например, при щелчке по избранной кнопке должен открываться избранный фрагмент, но этого не происходит.
Пожалуйста, помогите мне ..........

Фрагмент не изменяется при щелчке по нижним элементам навигации. Например, при нажатии на любимую кнопку должен открываться любимый фрагмент, но этого не происходит.
Пожалуйста, помогите мне ..........

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...