[英]ViewPager inner fragments Not showing when returning to parent fragment
當我通過操作欄更改父片段時,ViewPager2 內部片段未顯示
最初它顯示得很好,但是當我通過操作欄更改為不同的片段並返回時,視圖尋呼機不再顯示其內容!
這是主要活動
private const val NUM_PAGES = 5
class MainActivity : AppCompatActivity() {
private lateinit var appBarConfiguration: AppBarConfiguration
private lateinit var mPager: ViewPager2
private var Defined = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar: Toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
val navView: NavigationView = findViewById(R.id.nav_view)
val navController = findNavController(R.id.nav_host_fragment)
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
appBarConfiguration = AppBarConfiguration(
setOf(
R.id.nav_home, R.id.nav_deposit,R.id.nav_account,R.id.nav_portfolio, R.id.nav_pager
), drawerLayout
)
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.main, menu)
Defined = true
PagerWorker()
return true
}
override fun onChildTitleChanged(childActivity: Activity?, title: CharSequence?) {
Log.d("Pager Worker","ChildTitleChanged")
super.onChildTitleChanged(childActivity, title)
}
override fun onSupportNavigateUp(): Boolean {
val navController = findNavController(R.id.nav_host_fragment)
return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()
}
fun PagerWorker(){
/** MAKING PAGER STUFF **/
if(Defined == true) {
Log.d("Pager Worker", "1")
val pagerAdapter = ScreenSlidePagerAdapter(this)
mPager = findViewById(R.id.pager)
mPager.adapter = pagerAdapter
}
}
}
class ScreenSlidePagerAdapter(fa: FragmentActivity) : FragmentStateAdapter(fa) {
override fun createFragment(position: Int): Fragment {
return SlideFragment()
}
override fun getItemCount(): Int = NUM_PAGES
fun getItem(position: Int):Fragment{
return SlideFragment()
}
}
這是幻燈片片段代碼
package com.main.treasurex.ui.home
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProviders
import com.main.treasurex.R
class SlideFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View = inflater.inflate(R.layout.pager_item, container, false)
}
先感謝您!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
解決它:
創建了第二個活動以被調用以顯示在 ViewPager 上!!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.