2014-11-08 293 views
1

我想實現一個材質導航抽屜。像這樣https://github.com/kanytu/android-material-drawer-template在導航抽屜中導航錯誤?

我有兩個問題。

1.我在main Activity中聲明onNavigationDrawerItemSelected方法中的所有意圖。如果我的主要活動是針對另一項活動,如FeedActivity。那麼我是否必須在我的feedActivity中聲明不同的onNavigationDrawerItemSelected方法。

2.當我通過onNavigationDrawerItemSelected方法MainActivity意圖。該應用程序無法正常工作。

public class MainActivity extends ActionBarActivity implements NavigationDrawerCallbacks{ 

    private Toolbar mToolbar; 
    private NavigationDrawerFragment mNavigationDrawerFragment; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar); 
     setSupportActionBar(mToolbar); 
     getSupportActionBar().setDisplayShowHomeEnabled(true); 
     mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(R.id.fragment_drawer); 
     mNavigationDrawerFragment.setup(R.id.fragment_drawer, (DrawerLayout) findViewById(R.id.drawer), mToolbar); 
    } 

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

    @Override 
    public void onNavigationDrawerItemSelected(int position) { 
     if (position == 1){ 
      startActivity(new Intent(this, FeedListActivity.class)); 
     }else if (position == 2){ 
      startActivity(new Intent(this, VideoActivity.class)); 
     } 
    } 
} 

EDIT 。如果我在上述方法中通過這下面的代碼。該應用程序不會FeedActivity。它再次打開主要活動。當我按列表中的第一項。

if (position == 0){ 
      startActivity(new Intent(this, MainActivity.class)); 

如果問題不清楚,對不起。 在此先感謝。

+1

在問題#2中,請說明您的應用程序無法正常工作,並且應用程序的工作方式不同......當您使用底部的代碼進行替換時。你是否收到錯誤(什麼錯誤),是否錯誤的活動開始? etc ... – NameSpace 2014-11-08 15:05:04

+1

如果您要在多個活動中使用導航抽屜,那麼您必須在其中的每個方法中實施方法。例如,在這種情況下,最好使用片段而不是各種活動。我不明白第二個問題。請澄清 – mobilepotato7 2014-11-08 15:11:53

+1

@Namespace查看編輯... – user3467240 2014-11-08 15:12:18

回答

0

- #1新的活動將實施一個新的抽屜,以及一個新的抽屜佈局。這只是一個永遠不會存在的設計模式。如果你有一個持久的導航抽屜,它應該包裝一個片段,並且你應該交換出這個片段。

如果您去了活動路線,您將不得不在每次活動中重新創建導航抽屜,並帶有一個新的抽屜監聽器。將活動視爲完全取代舊活動,而片段只取代屏幕的一部分。

- #2列表中的第一項是第零位項目。這是從零開始的索引。我認爲這個問題是你的索引被關閉了。

+0

我覺得你沒有去第二個吧?我只是使用位置== 0。但是當位置1被按下時,它會轉到主要活動? – user3467240 2014-11-08 16:14:23

+0

好吧,當你在那之後按下位置時它會做什麼。 – NameSpace 2014-11-08 16:28:37