2014-09-21 93 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