Можно ли показать BottomNavigation через фрагмент?

У меня есть Activity, которые имеют нижнюю навигацию:

package com.example.program;

public class Add extends AppCompatActivity {

    BottomNavigationView bottomNav;

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

        bottomNav = findViewById(R.id.bottom_navigation);
        bottomNav.setOnNavigationItemSelectedListener(navListener);


        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                    new addGrade()).commit();
        }
}

private BottomNavigationView.OnNavigationItemSelectedListener navListener =
    new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Fragment selectedFragment = null;

            switch (item.getItemId()) {
                case R.id.nav_home:
                    selectedFragment = new addGrade();
                    break;
                case R.id.nav_exam:
                    selectedFragment = new addExam();
                    break;
            }

            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                    selectedFragment).commit();

            return true;
            }
        };
}

С помощью навигации я могу открыть два фрагмента, и у одного из них есть другой фрагмент.

Фрагмент:

package com.example.program;

    public class addGrade extends Fragment implements View.OnClickListener {

        View v;

        @Nullable
        @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
       v=inflater.inflate(R.layout.fragment_addgrade, container, false);

        Button button = (Button)v.findViewById(R.id.newObject);
        button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Fragment addObject = new addObject ();
            FragmentTransaction FragTran = getFragmentManager().beginTransaction();
            FragTran.replace(R.id.addMenu,addObject);
            FragTran.commit();
        }
    });


    return v;

}

@Override
public void onClick(View view) {

}

}

Фрагмент фрагмента пуст, сначала я просто хочу отобразить без панели навигации

И у меня есть некоторые проблемы с этим вторым фрагментом. Когда я открываю фрагмент фрагмента, Bottom Navigation все еще там, но не работает (когда я нажимаю, ничего не происходит). Сначала попытайтесь setVisibility(View.GONE) как это:

Деятельность:

 public void setVisibility() {
         bottomNav.setVisibility(View.GONE);
    }

Первый фрагмент:

Add add = new Add();  
Button button = (Button)v.findViewById(R.id.newObject);
            button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                add.setVisibility();

                Fragment addObject = new addObject ();
                FragmentTransaction FragTran = getFragmentManager().beginTransaction();
                FragTran.replace(R.id.addMen

u,addObject );
            FragTran.commit();
        }
    });

Таким образом, мое лучшее решение, если нижняя навигация не отображается во втором Fragment, но это нормально, если он отображается, но, по крайней мере, это должно работать. (Я переписываю эти коды, потому что в IDE я использую другой язык, поэтому может иметь некоторые неправильные синтаксисы или ошибки, извините за это, синтаксис программы работает)

0 ответов

Другие вопросы по тегам