【问题标题】:Fragment's method from Activity Callback is not callingActivity Callback 中的 Fragment 方法未调用
【发布时间】:2021-03-25 02:14:31
【问题描述】:

我做了如下:

在 Activity 中以 MyCallBack.MyListener 实现侦听器

在活动中初始化如下:

App.Manager.myCallback?.myListener(this)

下面是实现的方法:

override fun onGettingData(data: MyData) {

        var fragment1 = supportFragmentManager.findFragmentById(R.id.container) as Fragment1
        if (fragment1 != null && fragment1.isVisible) {
            fragment1.onDataReceived(data)
        }

        var fragment2 = supportFragmentManager.findFragmentById(R.id.container) as Fragment2
        if (fragment2 != null && fragment2.isVisible) {
            fragment2.onDataReceived(data)
        }
    }

但是我的片段中的这个方法没有被调用。

【问题讨论】:

  • fragment1.onDataReceived(data)fragment2.onDataReceived(data) 被调用了吗?
  • 为片段 1 工作。不为片段 2 工作
  • 这不是您所期待的吗?确定容器一次只有一个片段吗?
  • @HenryTwist 是的,我正在片段 1 上添加第二个片段。

标签: android android-fragments fragment


【解决方案1】:

解决方案:

for (fragment in supportFragmentManager.fragments) {
        if (fragment is Fragment1) {
            fragment.onDataReceived(data)
        } else if (fragment is Fragment2) {
            fragment.onDataReceived(data)
        }
    }

【讨论】:

    猜你喜欢
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    相关资源
    最近更新 更多