从 tablayout 中的片段访问父 activity 视图?
Access parent activity views from fragment in tablayout?
我正在使用 TabLayout
和 ViewPager
。我有 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()
}
}
我正在使用 TabLayout
和 ViewPager
。我有 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()
}
}