java - ViewPager内部片段返回父片段时不显示
问题描述
当我通过操作栏更改父片段时,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 上!!!
推荐阅读
- python - 使用 Django 查询集时出现 UnboundLocalError
- netbeans-12 - Netbeans 12.3 无法创建测试文件夹和测试文件
- c++ - 为什么当我想在我的 Qt 应用程序上打开第二个窗口时,我的头文件无法识别第二个窗口?
- javascript - 如何创建一个将由事件侦听器调用的单个函数,而不是每个不同按钮的函数?
- macos - 搜索颜色并做一些事情-Apple Script-
- java - JButton 与我的学生管理软件中的 JPanel 重叠
- python - 不了解集合迭代是如何工作的,期望为真但返回假
- unreal-engine4 - 材料在盒子图案中变成黑色和灰色
- javascript - XMLHttpRequest 服务器中的模式不起作用
- flutter - 如何从这个函数返回值???飘飘然