中调用setupMenubar
我正在设计一个应用程序,该应用使用底部划分在家庭反应性上有4个不同的片段,以在它们之间和我用作新闻feed的第一页上切换,直到直到我切换到不同的片段,然后再次返回。我了解与此类似的问题,但是在我的情况下似乎没有解决方案有帮助。我认为问题与片段中的ongreate()和oncreateview的差异有关。
任何帮助都将不胜感激。
public class HomeFragment extends Fragment {
View v;
private RecyclerView recyclerView;
private List<Drink> drinksList;
RecyclerViewAdapter recyclerViewAdapter;
public HomeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
v = inflater.inflate(R.layout.fragment_home, container, false);
return v;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drinksList = new ArrayList<>();
drinksList.add(new Drink("Latte",999,"Coffee","test",1.99,77,R.drawable.latte));
drinksList.add(new Drink("Black Tea",123,"Tea", "test", 1.50,11,R.drawable.blacktea));
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
recyclerView = v.findViewById(R.id.recyclerView);
recyclerViewAdapter = new RecyclerViewAdapter(drinksList,getContext());
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setAdapter(recyclerViewAdapter);
recyclerViewAdapter.notifyDataSetChanged();
}
}
编辑添加寄宿家庭
public void setupmenunav(){
mMainFrame = findViewById(R.id.mainFrame);
bottomNavigationView = findViewById(R.id.bottomNaviationView);
homeFragment = new HomeFragment();
socialFragment = new SocialFragment();
trackingFragment = new TrackingFragment();
locationFragment = new LocationFragment();
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navHome:
setFragment(homeFragment);
return true;
case R.id.navSocial:
setFragment(socialFragment);
return true;
case R.id.navTracking:
setFragment(trackingFragment);
return true;
case R.id.navLocation:
setFragment(locationFragment);
return true;
default:
return false;
}
}
});
}
private void setFragment(Fragment fragment) {
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.mainFrame, fragment);
fragmentTransaction.commit();
}
然后在onCreate()方法
onCreate()
上的 HomeActivity
添加 setFragment(new HomeFragment())
上的方法。那应该可以解决问题。