2

我已经实现了导航视图。它看起来很漂亮而且很好。我在我的主要活动中使用它,并且正在研究预先设计的原则。

到目前为止我做了什么

在创建新项目手册时,我在 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>

工作计划是我的主要活动,默认情况下会打开。并包含在它上面。现在以下是我想要的

“我想要什么,什么让我困惑”

  1. 我知道我可以在我的 Main Activity onNavigationItemSelected方法中处理对这些菜单的点击,如下所示
 @Override
public boolean onNavigationItemSelected(MenuItem item)
  {
    // Handle navigation view item clicks here.

    int id = item.getItemId();

所以我可以用这种方法处理点击

但是如果我导航到其他活动,是否理解导航视图也将涵盖该活动?

  1. 当我导航到其他视图/类时,该菜单应突出显示

  2. 我希望当我单击导航视图中的菜单时,它应该以良好的过渡打开新活动

注意事项

第一点是我的困惑,也请清楚我如何在其他视图/活动之间导航??

以及如何记住您在哪个菜单项上?

请帮忙 ....

4

2 回答 2

2

我也使用 Navigation Drawer 模板开始了我最近的项目。据我所知,您基本上有两种选择:

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。

干杯

马蒂亚斯

于 2016-02-16T12:12:54.083 回答
0

第 1 步:在一个名为 BaseActivity 的单独活动中实现所有导航抽屉/视图工作内容,无论您想要什么。

第2步:然后用这个基类扩展类

据我所知,这是一种简单的方法。

于 2016-02-16T12:12:02.510 回答