我在FragmentStateAdapter中有一个包含多个片段的viewpager2。每当我尝试打开一个新的片段,然后用viewpager2返回到我当前的片段时,我都会得到一个异常:
Expected the adapter to be 'fresh' while restoring state.
FragmentStateAdapter似乎无法正确恢复其状态,因为它预期该状态为空。
我能做些什么来解决这个问题呢?
我知道这个问题已经问过很多次了,但我找不到一个解释性的答案。
我希望有一个单一的MyFragment.java,并显示它的所有3页的ViewPager。
但是当我尝试用这个方法创建一个片段时:
new MyFragment()
并将其添加到ViewPager中,我得到以下错误:
在androidx.fragment.app.Fragment.setInitialSavedState(Fragment.java:679) at androidx.viewpager2.adapter.FragmentStateAdapter.ensureFragment(FragmentStateAdapter.
我有一个FragmentStateAdapter作为ViewPager2的适配器。 class DefaultFragmentStateAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
var items = listOf<Fragment>()
set(value) {
field = value
notifyDateSetChanged()
}
override fun getItemCount(): Int
我使用的是ViewPager2和ViewPagerAdapter。此适配器包括片段。这个片段的布局有一个ScrollView。
我想要做的是在单击ScrollView中的一个按钮后,将显示片段的MainActivity滚动到某个特定位置。但我不知道如何得到ScrollView。我只知道如何获得显示项(mPager.getCurrentItem)。
详细信息
Fragement:
public class ChapterFragment extends Fragment {
ViewPagerAdapter:
public class ViewPagerAdapter extends Frag
我正在用viewpager2和FragmentStateAdapter制作一个文件选择页面。在其中一个页面中,我显示了所有挂载的存储设备,我希望在这些设备上点击查看内容,但希望内容位于另一个片段上。 我想用viewpager最后一页中的另一个替换片段。但是使用下面的代码,页面只是刷新,并且不会创建新的片段,因为createFragment不会被调用。 我的PagerAdapter public static class PagerAdapter extends FragmentStateAdapter {
private Fragment mFragmentAtPos0;
我已经使用了带有片段的ViewPager2作为here示例。当我删除第一个位置时,片段仍在显示。对于这种情况,你有什么建议吗? class PagerAdapter(
private var activity: FragmentActivity,
private var itemCount: Int,
private val conversationId: Long,
private val currentMediaOffset: Int,
private val callBack: PhotoViewerActivity.OnPageListener
我已经将ViewPager迁移到ViewPager2,并将适配器FragmentPageAdapter迁移到FragmentStateAdaper。在FragmentPageAdapter中有一个名为getItemPostion(Object obj)的方法,通过使用这个方法,我可以替换片段。在FragmentStateAdaper类中,没有该方法如何用FragmentStateAdaper替换viewpager2中片段。下面是我的适配器:
public class BottomNavigationIcon extends FragmentStateAdapter implements Fra
我使用的是导航架构组件--一个活动多个片段的风格。在ProfileEditHolderFragment中,我希望使用最新ViewPager2和FragmentStateAdapter以可切换的方式显示片段列表。我像bellow一样实现了它。
ProfileEditHolderFragment.kt
class ProfileEditHolderFragment : BaseFragment() {
override fun getLayoutResId() = R.layout.fragment_profile_edit_holder
override fun initWi
目前,我使用一个ViewPager2实例实现了下面的适配器 在初始加载时,FeedFragment加载它的数据,并且是可见的和正常的。当我滚动到第三个左右的片段并返回时,FeedFragment是空白的,直到我触摸它,然后它再次出现。造成这种空白状态的原因是什么? FragmentStateAdapter(fragmentManager, lifecycle) {
override fun getItemCount(): Int = 5
override fun createFragment(position: Int): Fragment {
/