【问题标题】:How to refresh fragment it is added to viewpager, when I press back button in another fragment(it is not in viewpager)当我在另一个片段中按下后退按钮时,如何刷新将其添加到 viewpager 的片段(它不在 viewpager 中)
【发布时间】:2017-10-30 13:24:39
【问题描述】:

当我在 Fragment2 中按下返回按钮时如何刷新 Fragment1。这里将 Fragment1 添加到 Activity 类中的 View Pager 中。两个 Fagment 都在 android.app.Fragment 下。

【问题讨论】:

    标签: android fragment onbackpressed


    【解决方案1】:

    解决这个问题的方法是通过Fragment 通信,其中涉及主机Activity 作为middleman 例如:

    interface FragmentCommunicator {
        fun refreshFragmentOne()
    }
    
    class MyActivity : Activity(), FragmentCommunicator {
        override fun refreshFragmentOne() {
            val fragmentOne = pageAdapter.instantiateItem(pager,1) as? FragmentOne?
            fragmentOne?.refresh()
        }
    }
    
    class FragmentTwo : Fragment() {
        var listener : FragmentCommunicator? = null
        override fun onAttach(context: Context?) {
            super.onAttach(context)
            listener = context as FragmentCommunicator
        }
    
        override fun onDetach() {
            listener = null
            super.onDetach()
        }
    }
    

    现在在您的Button#onClick 致电listener?.refreshFragmentOne()

    更多详情请阅读https://developer.android.com/training/basics/fragments/communicating.html

    【讨论】:

      【解决方案2】:

      当它对用户可见时尝试刷新片段。 覆盖片段中的setUserVisibleHintmethod1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-19
        • 2015-11-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多