Основываясь на том, что он ответил @chahat jain:
«Когда мы используем viewPager, хорошим способом доступа к экземпляру фрагмента в активности является instantiateItem (viewpager, index). // index-index of фрагмент которого вам нужен. "
Если вы хотите сделать это в kotlin
val fragment = mv_viewpager.adapter!!.instantiateItem(mv_viewpager, 0) as Fragment
if ( fragment is YourFragmentFragment)
{
//DO somthign
}
0 на экземпляр фрагмента 0
// = ================================================== ====================== // // ######################## ##### Пример использования ################################## // // ===== ================================================== ================== // //
Вот полный пример, чтобы получить самое лёгкое видение
.xml file ...
<android.support.v4.view.ViewPager
android:id="@+id/mv_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"/>
...
И домашняя активность, в которую я вставляю вкладку
...
import kotlinx.android.synthetic.main.movie_tab.*
class HomeActivity : AppCompatActivity() {
lateinit var adapter:HomeTabPagerAdapter
override fun onCreate(savedInstanceState: Bundle?) {
...
}
override fun onCreateOptionsMenu(menu: Menu) :Boolean{
...
mSearchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
...
override fun onQueryTextChange(newText: String): Boolean {
if (mv_viewpager.currentItem ==0)
{
val fragment = mv_viewpager.adapter!!.instantiateItem(mv_viewpager, 0) as Fragment
if ( fragment is ListMoviesFragment)
fragment.onQueryTextChange(newText)
}
else
{
val fragment = mv_viewpager.adapter!!.instantiateItem(mv_viewpager, 1) as Fragment
if ( fragment is ListShowFragment)
fragment.onQueryTextChange(newText)
}
return true
}
})
return super.onCreateOptionsMenu(menu)
}
...
}