我正在尝试实施材质导航抽屉。这样的事情https://github.com/kanytu/android-material-drawer-template。
我有两个问题。
1.我在我的onNavigationDrawerItemSelected
中声明了main Activity
方法中的所有意图。如果我的主要活动是针对其他活动,例如FeedActivity
。然后我必须在onNavigationDrawerItemSelected
中声明不同的feedActivity
方法。
2.当我在MainActivity
方法中传递onNavigationDrawerItemSelected
意图时。该应用程序无法正常工作。
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));
}
}
}
修改 如果我在上面的方法中通过以下代码。该应用程序不会使用FeedActivity。它再次打开mainActivity。当我按下列表中的第一项时。
if (position == 0){
startActivity(new Intent(this, MainActivity.class));
如果问题不明确,抱歉。 提前致谢。
答案 0 :(得分:0)
- #1新活动将实现新的抽屉,以及新的抽屉布局。它只是一个永远不应该存在的设计模式。如果你有一个持久的导航抽屉,它应该包装一个片段,你应该交换该片段。
如果您去了活动路线,则必须使用新的抽屉监听器在每个活动中重新创建导航抽屉。将活动视为完全替换旧活动,而碎片仅替换屏幕的一部分。
- #2列表中的第一项是第0个位置项。它是基于零的索引。我认为问题是你的索引是一个人。