从 tablayout 中的片段访问父 activity 视图?

Access parent activity views from fragment in tablayout?

我正在使用 TabLayoutViewPager。我有 3 个片段和 3 个标签。我想访问 activitymain.xml 文件中的 FloatingActionButton

在每个片段中我都写了这样的代码:

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        val fab :View= (requireActivity() as MainActivity).findViewById(R.id.fab_main)

            fab.setOnClickListener {
                Toast.makeText(context,"Fragment1",Toast.LENGTH_SHORT).show()  
            }
        }

但是当我在每个片段中单击 FloatingActionButton 时,它会给我与最后一个片段相关的相同 Toast 消息。我想在单击按钮时在每个片段中执行不同的操作。

您可以将 FragmentStatePagerAdapter 用于选项卡功能

class TabAdapter(fm: FragmentManager) : FragmentStatePagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
..........
}

当片段处于​​活动状态时,它将使片段调用onResume。 所以你可以在 Fragment

中喜欢这个
override fun onResume() {
    super.onResume()

    val fab :View= (requireActivity() as MainActivity).findViewById(R.id.fab_main)

    fab.setOnClickListener {
        Toast.makeText(context,"Fragment1",Toast.LENGTH_SHORT).show()  
    }
}