繁体   English   中英

片段显示不同的内容

[英]Fragment display different content

我可以根据在前一个屏幕中选择的内容制作片段来显示不同的内容吗?

例如:我用 ImageView 和 TextView 创建片段。 在 MainActivity 我单击 Button1 并打开 Fragment 并显示一些内容,如果我单击 Button2 相同的 Fragment 打开但显示不同的内容。 是否有可能做到这一点?

案例1:如果片段实例没有被保留/重用(例如片段对话框),我们只需要在创建片段时通过arguments绑定标志/内容

fun createAFragment(flag: Int): Fragment {
    val fragment = AFragment()
    fragment.arguments = Bundle().apply { putString("keyFlag", flag) }
    return fragment
}

在 AFragment 的onViewCreated()中,我们可以从arguments包中读取标志值,并将等效数据绑定到图像视图和文本视图中。 我们也可以通过arguments将图像资源和文本绑定到片段(参见Bundle

我们也可以将这种方法应用于ViewPager上的片段。

情况2:fragment实例被保留,例如一个activity上有两个fragment,一个控制另一个。 在这种情况下,我们应该使用视图 model在片段和活动之间共享数据, 实时数据用于通知数据更改。

此代码实验室可能有助于了解 ViewModel 和 LiveData: https://developer.android.com/codelabs/kotlin-android-training-live-data

暂无
暂无

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

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