繁体   English   中英

如何在导航视图中导航

[英]How to navigate through Navigation View

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

到目前为止我做了什么

在创建新的项目手册时,我已经借助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. 我知道我可以在我的主要活动onNavigationItemSelected方法中处理这些菜单上的单击,如下所示
  @Override public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. int id = item.getItemId(); 

这样我就可以处理点击

但是,如果我导航到其他活动,是否可以理解导航视图也可以覆盖?

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

  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。

干杯

马蒂亚斯

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

步骤2:然后使用该基类扩展类

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM