【问题标题】:How to pass a long value to a destination fragment using Android Navigation?如何使用 Android Navigation 将长值传递给目标片段?
【发布时间】:2018-05-30 19:46:14
【问题描述】:

我想为 Android 导航实现 safe-args plugin

这适用于整数和字符串,但是我无法长时间获取生成的代码。

这可能吗?

我试过了:

<fragment
    android:id="@+id/myFragment"
    android:name="com.x.app.y.MyFragment"
    android:label="fragment_mine"
    tools:layout="@layout/fragment_mine">
    <argument
        android:name="row_id"
        app:type="long"/>
</fragment>

但这会为字符串生成代码。

这是我的选择:

这是行为:

  • 推断 => String
  • 字符串 => String
  • 整数 => int
  • 参考 => int

【问题讨论】:

    标签: android android-navigation android-jetpack


    【解决方案1】:

    UI 中的类型列表是 Navigation Safe Args 当前支持的值的完整列表,因此当前 1.0.0-alpha01 版本中不支持 long。

    有一个existing feature request 可以添加其他支持的类型,long 是请求的类型之一。

    【讨论】:

    • 非常感谢伊恩,我已为功能请求加注星标。有没有办法我们可以获取插件(以及其他所有内容)的来源,以便我们自己挖掘支持的类型?
    • 我可以确认 long 类型现在可以工作(在 alpha08 上测试,应该从 alpha03 开始​​工作),但是您的 Android Studio 编辑器可能还不支持它。因此,您可以在“文本”视图模式下的导航图 xml 中更改它,并且安全 args 插件将生成正确的类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2021-07-06
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多