【发布时间】:2014-10-29 11:46:33
【问题描述】:
我正在尝试this tutorial. 中给出的导航抽屉(幻灯片菜单)
上述链接和我的不同之处在于,我尝试调用活动而不是调用片段。当应用程序打开时,我看不到导航抽屉菜单,我只能看到打开 HOME 活动的操作栏。
这是我更改的代码:(是否需要有一个片段或者我可以在导航抽屉中的第一个屏幕上使用活动?)
mTitle = mDrawerTitle = getTitle();
navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
navMenuIcons = getResources().obtainTypedArray(R.array.nav_drawer_icons);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
navDrawerItems = new ArrayList<NavDrawerItem>();
navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(1, -1)));
navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(2, -1),true, "200"));
navMenuIcons.recycle();
mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
adapter = new NavDrawerListAdapter(getApplicationContext(), navDrawerItems);
mDrawerList.setAdapter(adapter);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.drawer,
R.string.drawer_open,
R.string.drawer_close
)
{
public void onDrawerClosed(View view)
{
getActionBar().setTitle(mTitle);
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView)
{
getActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
if (savedInstanceState == null)
{
displayView(0);
}
}
private class SlideMenuClickListener implements
ListView.OnItemClickListener
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
displayView(position);
}
}
private void displayView(int position)
{
switch (position)
{
case 0:
//fragment = new HomeFragment();
Intent intent = new Intent(this, Home.class);
startActivity(intent);
return;
case 1:
//fragment = new FindPeopleFragment();
Intent intent1 = new Intent(this, Profile.class);
startActivity(intent1);
break;
case 2:
//fragment = new PhotosFragment();
Intent intent2 = new Intent(this, Details.class);
startActivity(intent2);
break;
default:
break;
}
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
如何解决此问题以在我的 Home Activity 上显示导航抽屉?
更新:
我什至尝试了此链接中给出的以下选项:
How can I call one of my activity using navigation drawer ? 但我仍然没有得到导航幻灯片菜单。
【问题讨论】:
-
您实际上并没有展示任何用于设置导航抽屉的代码。例如,您似乎没有
ActionBarDrawerToggle,这是实际将导航抽屉图标放在操作栏中的部分。 -
@Tanis.7x - 我已经更新了我的问题。请立即查看!谢谢!
-
正如@Soutu 已经指出的那样:
NavigationDrawer仅适用于one Activity,您可以在其中交换几个Fragments。如果您使用的是AndroidStudio,您可以在New Project下创建一个NavigationDrawerActivity,这为您提供了一个很好的起点。 -
请查看此链接,它可能对您有所帮助[导航抽屉与活动][1] [1]:stackoverflow.com/questions/19442378/…
-
请查看此链接,它可能对您有所帮助。 [链接][1] [1]:stackoverflow.com/questions/19442378/…
标签: android android-fragments navigation android-actionbar navigation-drawer