我想知道当我使用按钮更改 fragment 时如何更改抽屉导航中的所选项目。
起始 fragment “Home”具有将当前 fragment 更改为另一个 fragment 的按钮。当 fragment 从“Home”更改为“Work”时,抽屉导航中的所选项目不会分别从“Home”更改为“Work”。作为一名初学者并不能帮助我理解应该如何实现我在网上看到的解决方案,而且我找不到任何有关该主题的视频教程。如果有人能为我提供一个解决方案并描述它如何工作以及我应该如何使用它,将会非常有帮助。
这是打开应用程序时首先加载的 fragment :
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.getMenu().getItem(position).setChecked(true);
- 此处,您的
NavigationView
必须出现在您的 Activity 中,且 ID 为nav_view
这里的
位置
表示必须检查/选择抽屉中的项目数量。
您的主页 fragment (已编辑):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); } });
}
关于java - 如何更改按钮 fragment 更改上的抽屉选定项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56791801/