0

I don't know how I can stop sliding menu. I'd like to remove the slide menu that can swipe. I tried to annotate in code. But I couldn't stop acting slidemenu.

Below are my codes. Can you help me? Thanks so much in advance! :)

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState != null) {
            finish();
            return;
            }
        getActionBar().setDisplayShowHomeEnabled(false);              
        getActionBar().setDisplayShowTitleEnabled(false);
        //getActionBar().hide();
        mTitle = mDrawerTitle = getTitle();

        // load slide menu items
        navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
//
//      // nav drawer icons from resources
        navMenuIcons = getResources()
                .obtainTypedArray(R.array.nav_drawer_icons);
//
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.list_slidermenu);

        //navDrawerItems = new ArrayList<NavDrawerItem>();

        // adding nav drawer items to array
        // Home
//      navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
//      // Find People
//      navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
//      // Photos
//      navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
//      // Communities, Will add a counter here
//      navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1), true, "22"));
//      // Pages
//      navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
//      // What's hot, We  will add a counter here
//      navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1), true, "50+"));


        // Recycle the typed array
//      navMenuIcons.recycle();
//
//      mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
//
//      // setting the nav drawer list adapter
//      adapter = new NavDrawerListAdapter(getApplicationContext(),
//              navDrawerItems);
//      mDrawerList.setAdapter(adapter);

        // enabling action bar app icon and behaving it as toggle button
        //getActionBar().setDisplayHomeAsUpEnabled(true);
        //getActionBar().setHomeButtonEnabled(true);

        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                R.drawable.ic_drawer, //nav menu toggle icon
                R.string.app_name, // nav drawer open - description for accessibility
                R.string.app_name // nav drawer close - description for accessibility
        ) {
            public void onDrawerClosed(View view) {
                getActionBar().setTitle(mTitle);
                // calling onPrepareOptionsMenu() to show action bar icons
                //invalidateOptionsMenu();
            }

            public void onDrawerOpened(View drawerView) {
                getActionBar().setTitle(mDrawerTitle);
                // calling onPrepareOptionsMenu() to hide action bar icons
                //invalidateOptionsMenu();
            }
        };
//  
//
//      if (savedInstanceState == null) {
//          // on first time display view for first nav item
//          displayView(0);
//      }


        // Set up the action bar.
                //final ActionBar actionBar = getActionBar();
        getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

                // Create the adapter that will return a fragment for each of the three
                // primary sections of the app.
                mSectionsPagerAdapter = new SectionsPagerAdapter(
                        getSupportFragmentManager());


                // Set up the ViewPager with the sections adapter.
                mViewPager = (ViewPager) findViewById(R.id.pager);
                mViewPager.setAdapter(mSectionsPagerAdapter);
                mViewPager.setOffscreenPageLimit(4);
                // When swiping between different sections, select the corresponding
                // tab. We can also use ActionBar.Tab#select() to do this if we have
                // a reference to the Tab.
                mViewPager
                        .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                            @Override
                            public void onPageSelected(int position) {
                                getActionBar().setSelectedNavigationItem(position);
                            }
                        });

                // For each of the sections in the app, add a tab to the action bar.
                //for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
                    // Create a tab with text corresponding to the page title defined by
                    // the adapter. Also specify this Activity object, which implements
                    // the TabListener interface, as the callback (listener) for when
                    // this tab is selected.
                getActionBar().setStackedBackgroundDrawable(getResources().getDrawable(
                        R.drawable.background));
                getActionBar().addTab(getActionBar().newTab()
                            //.setText(mSectionsPagerAdapter.getPageTitle(0))
                            .setTabListener(this)
                            .setIcon(R.drawable.tmon)
                            //.setText(mSectionsPagerAdapter.getPageTitle(0))
                            );

                    getActionBar().addTab(getActionBar().newTab()
                            .setIcon(R.drawable.coupang)
                            //.setText(mSectionsPagerAdapter.getPageTitle(1))
                            .setTabListener(this));


                    getActionBar().addTab(getActionBar().newTab()
                            //.setText(mSectionsPagerAdapter.getPageTitle(2))
                            .setIcon(R.drawable.wemef)
                            .setTabListener(this));

                    getActionBar().addTab(getActionBar().newTab()
                            .setIcon(R.drawable.oclock)
                            //.setText(mSectionsPagerAdapter.getPageTitle(3))
                            .setTabListener(this));
                    //getActionBar().setIcon(R.drawable.tmon);
                //}
                    getActionBar().addTab(getActionBar().newTab()
                            .setIcon(R.drawable.search)
                            //.setText(mSectionsPagerAdapter.getPageTitle(4))
                            .setTabListener(this));


    }

    /**
     * Slide menu item click listener
     * */
//  private class SlideMenuClickListener implements
//          ListView.OnItemClickListener {
//      @Override
//      public void onItemClick(AdapterView<?> parent, View view, int position,
//              long id) {
//          // display view for selected nav drawer item
//          displayView(position);
//      }
//  }
    //tab
    public void onTabSelected(ActionBar.Tab tab,
            FragmentTransaction fragmentTransaction) {
        // When the given tab is selected, switch to the corresponding page in
        // the ViewPager.
        mViewPager.setCurrentItem(tab.getPosition());
    }


    public void onTabUnselected(ActionBar.Tab tab,
            FragmentTransaction fragmentTransaction) {
    }


    public void onTabReselected(ActionBar.Tab tab,
            FragmentTransaction fragmentTransaction) {
    }

    /**
     * A {@link FragmentPagerAdapter} that returns a fragment corresponding to
     * one of the sections/tabs/pages.
     */
    public class SectionsPagerAdapter extends FragmentPagerAdapter {
        Context mContext;

        public SectionsPagerAdapter(android.support.v4.app.FragmentManager fm) {
            super(fm);
        }

        @Override
        public android.support.v4.app.Fragment getItem(int position) {
            // getItem is called to instantiate the fragment for the given page.
            // Return a DummySectionFragment (defined as a static inner class
            // below) with the page number as its lone argument.
            switch(position) {
            case 0:
                return new Tab1();
            case 1:
                return new Tab2();
            case 2:
                return new Tab3();
            case 3:
                return new Tab4();
            case 4:
                return new Tab5();
            }
            return null;
        }

        @Override
        public int getCount() {
            // Show 5 total pages.
            return 5;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            Locale l = Locale.getDefault();
            switch (position) {
            case 0:
                return getString(R.string.title_section1).toUpperCase(l);
            case 1:
                return getString(R.string.title_section2).toUpperCase(l);
            case 2:
                return getString(R.string.title_section3).toUpperCase(l);
            case 3:
                return getString(R.string.title_section4).toUpperCase(l);
            case 4:
                return getString(R.string.title_section5).toUpperCase(l);
            }
            return null;
        }
    }




    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // toggle nav drawer on selecting action bar app icon/title
        if (mDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        // Handle action bar actions click
        switch (item.getItemId()) {
        case R.id.action_settings:
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }

    /* *
     * Called when invalidateOptionsMenu() is triggered
     */
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // if nav drawer is opened, hide the action items
        boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
        menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
        return super.onPrepareOptionsMenu(menu);
    }

    /**
     * Diplaying fragment view for selected nav drawer list item
     * */
//  private void displayView(int position) {
//      // update the main content by replacing fragments
//      Fragment fragment = null;
//      switch (position) {
//      case 0:
//          fragment = new HomeFragment();
//          break;
//      case 1:
//          fragment = new FindPeopleFragment();
//          break;
//      case 2:
//          fragment = new PhotosFragment();
//          break;
//      case 3:
//          fragment = new CommunityFragment();
//          break;
//      case 4:
//          fragment = new PagesFragment();
//          break;
//      case 5:
//          fragment = new WhatsHotFragment();
//          break;
//
//      default:
//          break;
//      }
//
//      if (fragment != null) {
//          FragmentManager fragmentManager = getFragmentManager();
//          fragmentManager.beginTransaction()
//                  .replace(R.id.frame_container, fragment).commit();
//
//          // update selected item and title, then close the drawer
//          mDrawerList.setItemChecked(position, true);
//          mDrawerList.setSelection(position);
//          setTitle(navMenuTitles[position]);
//          mDrawerLayout.closeDrawer(mDrawerList);
//      } else {
//          // error in creating fragment
//          Log.e("MainActivity", "Error in creating fragment");
//      }
//  }

    @Override
    public void setTitle(CharSequence title) {
        mTitle = title;
        getActionBar().setTitle(mTitle);
    }

    /**
     * When using the ActionBarDrawerToggle, you must call it during
     * onPostCreate() and onConfigurationChanged()...
     */

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        mDrawerToggle.syncState();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Pass any configuration change to the drawer toggls
        mDrawerToggle.onConfigurationChanged(newConfig);
    }
}
younglee
  • 27
  • 6

1 Answers1

0

I suppose that you want to prevent the sliding gesture from opening the navigation drawer because it interferes with swiping between tabs? The solution of this problem is described on Stack Overflow here:

In onCreate() use

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

to lock your DrawerLayout so it won't open with gestures. And unlock it with:

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);

(or force open with LOCK_MODE_LOCKED_OPEN).

Community
  • 1
  • 1
winne2
  • 2,188
  • 2
  • 17
  • 13