我的底部导航栏仅在双击切换片段时有效
My Bottom Navigation Bar Only Works When I Double Tap To Switch Fragments
我创建了一个在 4 个片段之间切换的底部导航栏。它工作正常,但是,我需要双击菜单项才能在片段之间切换。这不是我想要的功能,我也不知道它是怎么来的。
我学习的教程都是需要点击一下才能在片段之间切换,所以我很困惑。
我的MainActivity.java
public class MainActivity extends AppCompatActivity
{
private FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
auth = FirebaseAuth.getInstance();
if (auth.getCurrentUser() == null) {
startActivity(new Intent(MainActivity.this, Login_Page_Activity.class));
}
BottomNavigationView bottomnav = findViewById(R.id.bottom_navigation);
bottomnav.setOnNavigationItemReselectedListener(navListener); //this
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new explore_fragment()).commit();
}
private BottomNavigationView.OnNavigationItemReselectedListener navListener=
new BottomNavigationView.OnNavigationItemReselectedListener() {
@Override
public void onNavigationItemReselected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()){
case R.id.nav_explore:
selectedFragment = new explore_fragment();
break;
case R.id.nav_add:
selectedFragment = new add_events_fragment();
break;
case R.id.nav_events:
selectedFragment = new events_fragment();
break;
case R.id.nav_chat:
selectedFragment = new Chats_fragment();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
}
};
可能是 Item ReselectedListener 的问题
尝试项目选择监听器
public class MainActivity extends AppCompatActivity
{
private FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
auth = FirebaseAuth.getInstance();
if (auth.getCurrentUser() == null) {
startActivity(new Intent(MainActivity.this, Login_Page_Activity.class));
}
BottomNavigationView bottomnav = findViewById(R.id.bottom_navigation);
bottomnav.setOnNavigationItemSelectedListener(navListener); //this
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new explore_fragment()).commit();
}
private BottomNavigationView.OnNavigationItemSelectedListener navListener=
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public void onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()){
case R.id.nav_explore:
selectedFragment = new explore_fragment();
break;
case R.id.nav_add:
selectedFragment = new add_events_fragment();
break;
case R.id.nav_events:
selectedFragment = new events_fragment();
break;
case R.id.nav_chat:
selectedFragment = new Chats_fragment();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
}
};
我创建了一个在 4 个片段之间切换的底部导航栏。它工作正常,但是,我需要双击菜单项才能在片段之间切换。这不是我想要的功能,我也不知道它是怎么来的。
我学习的教程都是需要点击一下才能在片段之间切换,所以我很困惑。
我的MainActivity.java
public class MainActivity extends AppCompatActivity
{
private FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
auth = FirebaseAuth.getInstance();
if (auth.getCurrentUser() == null) {
startActivity(new Intent(MainActivity.this, Login_Page_Activity.class));
}
BottomNavigationView bottomnav = findViewById(R.id.bottom_navigation);
bottomnav.setOnNavigationItemReselectedListener(navListener); //this
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new explore_fragment()).commit();
}
private BottomNavigationView.OnNavigationItemReselectedListener navListener=
new BottomNavigationView.OnNavigationItemReselectedListener() {
@Override
public void onNavigationItemReselected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()){
case R.id.nav_explore:
selectedFragment = new explore_fragment();
break;
case R.id.nav_add:
selectedFragment = new add_events_fragment();
break;
case R.id.nav_events:
selectedFragment = new events_fragment();
break;
case R.id.nav_chat:
selectedFragment = new Chats_fragment();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
}
};
可能是 Item ReselectedListener 的问题
尝试项目选择监听器
public class MainActivity extends AppCompatActivity
{
private FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
auth = FirebaseAuth.getInstance();
if (auth.getCurrentUser() == null) {
startActivity(new Intent(MainActivity.this, Login_Page_Activity.class));
}
BottomNavigationView bottomnav = findViewById(R.id.bottom_navigation);
bottomnav.setOnNavigationItemSelectedListener(navListener); //this
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new explore_fragment()).commit();
}
private BottomNavigationView.OnNavigationItemSelectedListener navListener=
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public void onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()){
case R.id.nav_explore:
selectedFragment = new explore_fragment();
break;
case R.id.nav_add:
selectedFragment = new add_events_fragment();
break;
case R.id.nav_events:
selectedFragment = new events_fragment();
break;
case R.id.nav_chat:
selectedFragment = new Chats_fragment();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
}
};