【问题标题】:How to pass "bitmap" as argument using safe args如何使用安全参数将“位图”作为参数传递
【发布时间】:2019-10-31 14:39:29
【问题描述】:

我想使用安全参数将Bitmap 作为参数传递给另一个片段。传递位图的正确argType 是什么。

<fragment
        android:id="@+id/nextFragment"
        android:name="com.example.----.NextFragment"
        android:label="fragment_next"
        tools:layout="@layout/fragment_next" >
        <argument
            android:name="image"
            app:argType="???"
            android:defaultValue="???" />
</fragment>

【问题讨论】:

    标签: android android-architecture-components android-jetpack android-architecture-navigation android-safe-args


    【解决方案1】:

    您可以将 argType 添加为 android.graphics.Bitmap

    来自NavType.java的源代码

    Class clazz = Class.forName(className);
                    if (Parcelable.class.isAssignableFrom(clazz)) {
                        return new ParcelableType(clazz);
                    } else if (Enum.class.isAssignableFrom(clazz)) {
                        return new EnumType(clazz);
                    } else if (Serializable.class.isAssignableFrom(clazz)) {
                        return new SerializableType(clazz);
                    }
    

    而且Bitmap实现了parcelable,所以可以工作。

    您可以删除默认值

    【讨论】:

    • thankz,但是有一个问题,我希望位图可以为空,并且不允许我这样做,错误:Null can not be a value of a non-null type Bitmap,如何解决它?使用科特林
    • @Askani 将app:nullable="true" 添加到参数定义中应该会有所帮助。
    猜你喜欢
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    相关资源
    最近更新 更多