当前位置: 首页 > 知识库问答 >
问题:

将(打开/关闭)按钮添加到用于(打开/关闭)导航抽屉的活动

公良阳波
2023-03-14

我目前正在从android站点上了解导航抽屉,我正在使用他们的示例http://developer.android.com/training/implementation-navigation/nav-drawer.html

我想要的是在MainActivity添加一个按钮,它将能够打开NavigationDrawer。我需要以编程方式完成,而不是XML。我怎么能那样做?

共有1个答案

张兴旺
2023-03-14

mainactivity中创建一个包含您的DrawerLayout的方法。

public void open()
{
    mDrawerLayout.openDrawer(Gravity.LEFT);
}


并从oncreateView()方法中的片段中以编程方式在根膨胀布局中添加按钮。您的片段有按钮
bellowi修改的片段尝试

 public static class PlanetFragment extends Fragment {
    public static final String ARG_PLANET_NUMBER = "planet_number";

    public PlanetFragment() {
        // Empty constructor required for fragment subclasses
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_planet, container, false);
        int i = getArguments().getInt(ARG_PLANET_NUMBER);
        String planet = getResources().getStringArray(R.array.planets_array)[i];

        int imageId = getResources().getIdentifier(planet.toLowerCase(Locale.getDefault()),
                        "drawable", getActivity().getPackageName());
        ((ImageView) rootView.findViewById(R.id.image)).setImageResource(imageId);
        getActivity().setTitle(planet);
        RelativeLayout root=(RelativeLayout)rootView.findViewById(R.id.root);
        Button button=new Button(getActivity());            
        LayoutParams params=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
        button.setLayoutParams(params);
        params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
        params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
        button.setText("openDrawer");
        root.addView(button);

        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                ((MainActivity)getActivity()).open();
            }
        });
        return rootView;
    }
    }
 }


您可以在片段中尝试此代码..

 类似资料:
  • 在此处输入图像描述 我想在我的项目中使用开闭面板,就像所附的照片一样。我连续使用多个面板,有时我想最小化面板。我如何使用它,你能在java中添加类似代码的git链接吗?或者你知道这种类型的按钮和面板的名称吗?

  • 我想通过滑动禁用抽屉的打开,但不是通过滑动或后退按钮关闭。 我在抽屉中使用碎片,所以当抽屉打开时,我替换碎片并将其添加到Backback中。按Back(后退)按钮时,抽屉按预期关闭。 但是当我使用 就像在这篇文章中:禁用在android中打开导航抽屉的滑动手势,它会禁用所有滑动和返回按钮导航。现在关闭抽屉的唯一方法是触摸抽屉外面的屏幕。 是否有替代锁定模式并保留滑动关闭和后退按钮导航? 注意:我使

  • 我尝试在我的应用程序中实现导航抽屉(材料设计)。我的活动包含带有片段的FrameLayout。当用户在导航抽屉FrameLayout中选择项目时,重新加载新片段: 当我点击项目时,一切正常。导航抽屉关闭不顺利,但冻结(抽搐,抽搐),因为片段在后台重新加载。 如何顺利关闭导航抽屉?

  • 按预期实现和工作,因此确实没有代码值得在这里发布,只是想看看是否有人有加快抽屉打开和关闭时间的经验?例如,YouTube应用程序要快得多!

  • 我有标准抽屉菜单,但现在我试图修改它,使用工具栏。 之前我的代码看起来像:MainActivity.java NavigationDrawerFragment.java 现在我修改了代码:MainActivity。Java语言 NavigationDrawerFragment.java 并应显示HomeUp功能: 但未显示后退箭头 我试过打电话 因此,返回箭头出现,但单击它没有效果

  • 本文向大家介绍Android 打开关闭DrawerLayout,包括了Android 打开关闭DrawerLayout的使用技巧和注意事项,需要的朋友参考一下 示例