簡體   English   中英

從標簽布局中的片段訪問父活動視圖?

[英]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 用於選項卡 function

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

當片段處於活動狀態時,它將使片段調用 onResume。 所以你可以在片段中喜歡這個

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()  
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM