如何设计 React-Native Android 应用的导航器结构?

Posted

技术标签:

【中文标题】如何设计 React-Native Android 应用的导航器结构?【英文标题】:How to design the navigator structure of a React-Native Android app? 【发布时间】:2016-06-24 18:07:28 【问题描述】:

我正在 android 上使用 React-Native 构建一个 Expense Keeping 应用程序。下面是我的应用的 UI 流程图:

    我希望使用抽屉在***场景之间导航(显示为深红色)。

    Settings 场景中,有一些选项需要导航到一组只能导航回 Settings 场景的 2 级场景(如图所示)蓝色)。

我希望我的导航栏在场景转换中保持不变,因此我使用了<Navigator> 组件的navigationBar props。

在我的应用程序中使用单个<Navigator> 作为顶部组件并使用它管理所有场景和路线是一个明显的解决方案,但这种方式更难管理场景的“级别”。

我想知道是否还有其他更好的方法可以在我的应用中构建<Navigator>,也许是嵌套导航器?

【问题讨论】:

【参考方案1】:

我知道这是一个老问题,但它仍然是相关的,只是为了保持最新,使用React-Navigation(警告:需要一些学习和实践)。你可以使用这个example。请注意其中的导航树。它与问题需要的相似。

【讨论】:

谢谢!我目前也在使用 react-navigation,它很棒。 RN 的社区肯定行动迅速!【参考方案2】:

你试过react-native-router-flux组件吗?

【讨论】:

【参考方案3】:

您可以使用 Fragment。

首先:在活动中。您创建导航器。 在Activity的xml中有:

<DrawerLayout>

<Toolbar> or (Control Home of you)

<FrameLayout id="content_main">

然后:你创建 SettingFragment 扩展 Fragment

HomeFragment 扩展 Fragment

ExpansesFragment 扩展片段

import support.v4.Fragment

在Activity中扩展Activity

创建:

    FragmentManager manager = getSupportFragmentManager();
    manager.beginTransaction()
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
            .replace(R.id.content_main, HomeFragment)
            .commit();

在抽屉里。事件点击

Home

  FragmentManager manager = getSupportFragmentManager();
    manager.beginTransaction()
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
            .replace(R.id.content_main, HomeFragment)
            .commit();

Expenses

FragmentManager manager = getSupportFragmentManager();
    manager.beginTransaction()
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
            .replace(R.id.content_main, ExpensesFragment)
            .commit();


Category

  FragmentManager manager = getSupportFragmentManager();
    manager.beginTransaction()
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
            .replace(R.id.content_main, CategoryFragment)
            .commit();

【讨论】:

不幸的是,我相信这位用户询问的是 React Native,它使用 javascript 而不是 Java 创建移动应用程序。所以你的回答不会对他们有用。 这是 java 不是 react-native

以上是关于如何设计 React-Native Android 应用的导航器结构?的主要内容,如果未能解决你的问题,请参考以下文章

在react-native中,我如何在ios和android的图像上添加水印

如何检查android设备支持手电筒的`react-native`?

如何从 URL 下载图像并缓存 Android (React-Native)

如何将 React-Native 项目集成到 Android-Studio?

如何远程加载 react-native(Android) 包

如何使用 react-native 设计字段集图例