【发布时间】:2017-10-30 13:24:39
【问题描述】:
当我在 Fragment2 中按下返回按钮时如何刷新 Fragment1。这里将 Fragment1 添加到 Activity 类中的 View Pager 中。两个 Fagment 都在 android.app.Fragment 下。
【问题讨论】:
标签: android fragment onbackpressed
当我在 Fragment2 中按下返回按钮时如何刷新 Fragment1。这里将 Fragment1 添加到 Activity 类中的 View Pager 中。两个 Fagment 都在 android.app.Fragment 下。
【问题讨论】:
标签: android fragment onbackpressed
解决这个问题的方法是通过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
【讨论】:
当它对用户可见时尝试刷新片段。
覆盖片段中的setUserVisibleHintmethod1
【讨论】: