我想知道当我用按钮更改碎片时如何在导航抽屉中更改所选项目。
起始片段“主页”具有将当前片段更改为另一个片段的按钮。当片段从“主页”更改为“工作”时,导航抽屉中的所选项目不会分别从“主页”更改为“工作”。成为初学者并不能帮助我理解我应该如何实施在网上看到的解决方案,而且我找不到关于该主题的任何视频教程。如果有人可以为我提供解决方案,并且对它的工作原理以及我应该如何使用感到失望,那将非常有帮助。
这是打开应用程序时首先加载的片段:
public class Home extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_home, container, false);
ImageButton workButton = (ImageButton) view.findViewById(R.id.work_button);
ImageButton calendarButton = (ImageButton) view.findViewById(R.id.calendar_button);
workButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getFragmentManager().beginTransaction().replace(R.id.fragment_container, new Work()).addToBackStack(null).commit();
}
});
}
答案 0 :(得分:1)
navigationView.getMenu().getItem(position).setChecked(true);
NavigationView
必须以nav_view
的身份出现在您的活动中此处的position
表示必须检查/选择抽屉中的哪个项目。
您的首页片段(已编辑):
public class Home extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_home, container, false);
ImageButton workButton = (ImageButton) view.findViewById(R.id.work_button);
ImageButton calendarButton = (ImageButton) view.findViewById(R.id.calendar_button);
workButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getFragmentManager().beginTransaction().replace(R.id.fragment_container, new Work()).addToBackStack(null).commit
NavigationView navigationView = getActivity().findViewById(R.id.nav_view);
navigationView.getMenu().getItem(position).setChecked(true);
}
});
}