java - 如何更改按钮 fragment 更改上的抽屉选定项目?

标签 java android android-fragments navigation-drawer

我想知道当我使用按钮更改 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/

相关文章:

java - 字符串格式参数在 android 上的 string.xml 中不起作用

java - fragment 上的 MapFragment

安卓。另一个 tablayout 的选项卡内的 tablayout

java - 我如何在类和使用它的 fragment 之间进行通信?

java - 在java中创建一个文本文件

java - 在 checkstyle 中运行自定义检查时需要帮助

java - Java 中的 xml.etree.ElementTree 等价物

java - 来自 Java 客户端的 Python 套接字接收

Android gradle - 使用配置文件的不同目录设置产品风格,查找所有目录而不仅仅是 1

java - Skia项目运行在Android.4.2上,Android 4.2和Android 2.2中的定义是否存在差异?