2014-09-21 88 views
3

我希望我的导航抽屉在应用程序加载时被禁用,并且如果用户对某些特定任务启用导航抽屉,开始时禁用导航抽屉

简而言之,是否有一种方法可以禁用导航抽屉的切换按钮,并在受到用户操作的情况下再次启用它。

编辑: 我已更新我的活动如下;

public class MainActivity extends Activity 
    implements NavigationDrawerFragment.NavigationDrawerCallbacks { 

    private NavigationDrawerFragment mNavigationDrawerFragment; 

    private CharSequence mTitle; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mNavigationDrawerFragment = (NavigationDrawerFragment) 
       getFragmentManager().findFragmentById(R.id.navigation_drawer); 
     mTitle = getTitle(); 

     // Set up the drawer. 
     DrawerLayout navigationDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     mNavigationDrawerFragment.setUp(
       R.id.navigation_drawer, 
       navigationDrawerLayout); 

     navigationDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 
    } 
} 

    @Override 
    public boolean onOptionsItemSelected(android.view.MenuItem item) { 
     if (item.getItemId() == android.R.id.home) { 

     } 
     return super.onOptionsItemSelected(item); 
    } 
    ... 
} 

,但应用程序启动时,我可以打开抽屉式导航我穿上吨愿望

回答

0
write condtion in onoptionsitemselected and block it 


@Override 
    public boolean onOptionsItemSelected(android.view.MenuItem item) { 
     if (item.getItemId() == android.R.id.home) { 
if(yourconditionsatisfied) 
{ 
      if (mDrawerLayout.isDrawerOpen(mDrawerLinearLayout)) { 
       mDrawerLayout.closeDrawer(mDrawerLinearLayout); 
      } else { 
       mDrawerLayout.openDrawer(mDrawerLinearLayout); 
      } 
    } 
     } 
     return super.onOptionsItemSelected(item); 
    } 
+0

所以,你想锁定抽屉在关闭模式,然后用一些用户操作解锁它? – joao2fast4u 2014-09-21 17:14:36

+0

我的问题是关于navigationDrawer而不是你想禁用的选项菜单 – dursun 2014-09-21 17:26:12

+0

,或者你想要隐藏navigationdrawer图标 – 2014-09-21 17:27:06

4

你只需要锁定和使用DrawerLayoutsetDrawerLockMode()方法解锁DrawerLayout

因此,在关闭模式锁定您的DrawerLayout,用途:

drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 

如果你喜欢将其锁定在开放模式,使用drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);

最后,当你想解锁DrawerLayout,使用:

drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); 
+0

我刚刚试过你的解决方案,但它没有奏效,请看看我的更新问题 – dursun 2014-09-26 20:49:47

+0

发生了什么事情,然后? – joao2fast4u 2014-09-26 20:54:32

+0

抽屉仍可打开 – dursun 2014-09-26 20:56:05