Можно ли показать 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 я использую другой язык, поэтому может иметь некоторые неправильные синтаксисы или ошибки, извините за это, синтаксис программы работает)