[英]How to update view inside the viewpager2 that attach to fragment on fragment onResume?
我有一個包含Viewpager2
的片段“片段列表”。
當用戶點擊一個按鈕時,“片段列表”將被“片段表單”替換,用戶完成更新表單后。 我將彈出“片段表單”。 並且會調用“Fragment List”的OnResume
問題是,沒有調用viewpager的片段生命周期,那么當調用“片段列表” OnResume
時如何告訴viewpager的片段更新數據?
請注意,使用接口可能會產生NullPointerException
,因為當“片段列表” OnResume
被調用時, viewpager
可能還沒有准備好
謝謝
您可以在Fragment List
片段中獲取ViewPager
的當前頁面片段,並直接在其上調用方法進行更改。
我假設您的ViewPager
頁面片段被命名為PageFragment
當您從Fragment Form
返回時,在Fragment List
片段的onResume()
中添加以下內容
PageFragment fragment = (PageFragment)
mViewPagerAdapter.instantiateItem(mViewPager, mViewPager.getCurrentItem());
fragment.someMethod(); // pass your parameters
在PageFragment
中創建someMethod()
方法,並將您想要更改的參數傳遞給它。
您還需要處理Fragment List
片段的onResume()
是否由於從Fragment Form
返回或其他原因而被調用。
更新
instantiateItem
不可用。 我正在使用 Viewpager2 和ViewPagerAdapter
,它擴展了FragmentStateAdapter
你是對的,上面的代碼適用於ViewPager
,對於ViewPager2
你可以得到當前頁面的片段:
PagerFragment fragment = (PagerFragment) getSupportFragmentManager()
.findFragmentByTag("f" + mViewPager.getCurrentItem());
然后你可以調用一些方法。
fragment.someMethod(); // pass your parameters
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.