How to open Drawer Layout only with button?

2019-01-22 16:27发布

I'm working on application that has a tab structure, and use sliding movements to move through the tabs.

But now, I want to apply Drawer Layout. The problem is that the Drawer has slide to open events. How I can delete this event? My idea was that the Drawer only could open and close with a button. Is this possible? Thanks!

4条回答
甜甜的少女心
2楼-- · 2019-01-22 16:32

By default the DrawerLayout is initially hidden from the view unless you put a code to open the Drawer, by the time there is a sliding event triggered.

From the Navigation Drawer example, the contain content_frame is used to dynamically display views inside the Drawer using fragments.

  <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>

From the Fragment's onCreateView() you can include a button somewhere that has OnClickListener where in you put this code,

   //For me a better way in avoiding a `null pointer` in getting the DrawerLayout
   final DrawerLayout drawer = (DrawerLayout) getActivity().findViewById(R.id.drawer_layout);
   btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                            //Opens the Drawer
                drawer.openDrawer(Your View, Usually a ListView);
            }

                return false;
        });

You Can also use* to close the drawer.

drawer.closeDrawer(Your View, Usually a ListView);
查看更多
姐就是有狂的资本
3楼-- · 2019-01-22 16:38

Just write

drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

to prevent menu from listening to gesture

and use openDrawer and closeDrawer to change menu visibility

查看更多
相关推荐>>
4楼-- · 2019-01-22 16:44

you can write this way

 mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            drawer.openDrawer(navigationView);

        }
    });
查看更多
做自己的国王
5楼-- · 2019-01-22 16:55

If you want to navigate between drawer item on click of button inside your fragments, you can use this

((YourMainActivity)getActivity()).selectItem(position);
查看更多
登录 后发表回答