gpt4 book ai didi

java - 获得错误的底部导航 fragment onclick

转载 作者:行者123 更新时间:2023-11-30 10:16:36 24 4
gpt4 key购买 nike

你好我正在制作一个应用程序,我在其中使用带有底部导航的 fragment 但是当我点击主页按钮时它不会加载主页 fragment 而是加载第二个 fragment 而且当我启动应用程序主页 fragment 时默认情况下不会加载我知道这听起来可能很天真,但如果有人可以指导我,我会遇到这个问题我的 fragment 导航代码

public class MainActivity extends AppCompatActivity {
FrameLayout frameLayout;
FragmentManager fragmentManager;
Fragment fragment;
BottomNavigationView bottomNavigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//BottomNavigationView b=findViewById(R.id.bottom_nav);


fragmentManager = getSupportFragmentManager();

if(findViewById(R.id.frame_container)!=null){
if(savedInstanceState!=null){

return;
}
/*HomeFragment homeFragment = new HomeFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_container, homeFragment,null);
transaction.addToBackStack(null);
/* Comment this line and it should work!*/
//transaction.addToBackStack(null);
//transaction.commit();
}
bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_nav);

//final SeekBar sb = (SeekBar) findViewById(R.id.sb);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment fragment = null;
switch (item.getItemId()){
case R.id.navigation_home:
fragment = new HomeFragment();
loadFragment(fragment);

case R.id.navigation_feed:
fragment = new FeedFragment();
loadFragment(fragment);
return true;
case R.id.navigation_event:
fragment = new EventsFragment();
loadFragment(fragment);
return true;
case R.id.navigation_nearby:
fragment = new NearbyFragment();
loadFragment(fragment);
return true;
case R.id.navigation_profile:
fragment = new ProfileFragment();
loadFragment(fragment);
return true;
}
return false;

}
});

}

private void loadFragment(Fragment fragment) {
// HomeFragment homeFragment = new HomeFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_container, fragment,null);
transaction.addToBackStack(null);
/* Comment this line and it should work!*/
//transaction.addToBackStack(null);
transaction.commit();
// load fragment
//HomeFragment homeFragment = new HomeFragment();

}

}

最佳答案

你只是忘记了 return true; inside case R.id.navigation_home: 检查一下

试试这个

bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment fragment = null;
switch (item.getItemId()){
case R.id.navigation_home:
fragment = new HomeFragment();
loadFragment(fragment);
return true;
case R.id.navigation_feed:
fragment = new FeedFragment();
loadFragment(fragment);
return true;
case R.id.navigation_event:
fragment = new EventsFragment();
loadFragment(fragment);
return true;
case R.id.navigation_nearby:
fragment = new NearbyFragment();
loadFragment(fragment);
return true;
case R.id.navigation_profile:
fragment = new ProfileFragment();
loadFragment(fragment);
return true;
}
return false;

}
});

关于java - 获得错误的底部导航 fragment onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49993441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com