我已经实现了导航视图。它看起来美丽而精致。我在我的主要活动中使用它,我正在研究预先设计的校长。
到目前为止我做了什么
我在创建新项目手册的同时借助Android Studio制作了导航视图。所以我用我的视图和字符串实现并更新了导航视图。
现在它在主要活动上,它工作正常。我在导航视图列表中有3个视图,即“工作时间表”“关于我们”“设置”
这些是我可以点击进入其他活动的菜单
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/work"
android:icon="@drawable/ic_sche"
android:title="Work Schedule" />
<item
android:id="@+id/settings"
android:icon="@drawable/ic_menu_gallery"
android:title="Settings" />
<item
android:id="@+id/about_us"
android:icon="@drawable/ic_menu_slideshow"
android:title="About Us" />
<item
android:id="@+id/nav_tickets"
android:icon="@drawable/ic_menu_slideshow"
android:title="Tickets" />
</group>
</menu>
工作时间表是我的主要活动,默认情况下会打开。并包含它。以下是我想要的
“我想要什么,让我感到困惑”
@Override public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. int id = item.getItemId();
所以我可以点击这个方法点击
但如果我导航到其他活动,是否理解导航视图也会覆盖其他活动?
当我导航到其他视图/类时,该菜单应突出显示
我希望当我点击导航视图中的菜单时,它应该以良好的过渡方式打开新活动
注意事项
第一点是我的困惑,请告诉我如何在其他观点/活动之间导航?
以及如何记住你在哪个菜单项?
请帮忙......
答案 0 :(得分:2)
我也使用导航抽屉模板开始了我最近的项目。据我所知,你基本上有两种选择:
A)坚持使用您已经拥有的MainActivity并通过显示不同的片段来交换内容(将frameLayout添加到content_main.xml文件中以执行此操作。)这就是我所做的。如果你这样做,你根本不必担心导航抽屉,因为只有一个。
private void setFragment(Fragment fragment, String fragmentTag) {
Log.d(TAG, "setFragment: " + fragmentTag);
final FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.content_frame, fragment, fragmentTag);
transaction.addToBackStack(null);
transaction.commit();
}
B)您也可以像往常一样使用onNavigationItemSelected()方法启动许多新活动。恕我直言,每个这些活动都必须有自己的导航抽屉。我没试过,但打电话
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
final ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
应该工作的每个onCreate()方法中的。当前选择菜单中的哪个项目应通过Intent传递给Activity。
干杯
的Matthias
答案 1 :(得分:0)
步骤1:在名为BaseActivity的单独活动中实现所有导航抽屉/查看工作内容,无论您想要什么。
步骤2:然后使用此基类扩展类
据我所知,这是一种简单的方法。