【问题标题】:Custom Tab Adapter not showing anything自定义选项卡适配器不显示任何内容
【发布时间】:2018-04-07 21:38:05
【问题描述】:

我有以下 PagerAdapter 可以在我的 Android 片段中显示选项卡:

class CustomTabPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) {
    override fun getItem(position: Int): Fragment? {
        var fragment: Fragment? = null
        if (position == 0) {
            fragment = AchievOngoingFragment()
        } else if (position == 1) {
            fragment = AchievDoneFragment()
        }
        return fragment
    }

    override fun getCount(): Int = 2

    override fun getPageTitle(position: Int): CharSequence? {
        var title: String? = null
        if (position == 0) {
            title = "Ongoing"
        } else if (position == 1) {
            title = "Done"
        }
        return title
    }
}

在我的ProfileFragment 中设置如下:

internal lateinit var viewpageradapter:CustomTabPagerAdapter //Declare PagerAdapter

override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    viewpageradapter = CustomTabPagerAdapter(activity.supportFragmentManager)

    viewPager.adapter = viewpageradapter  //Binding PagerAdapter with ViewPager
    tab_layout.setupWithViewPager(this.viewPager)
}

采用以下布局:

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    app:tabGravity="fill"
    app:tabMode="fixed"
    app:tabSelectedTextColor="@color/black"
    app:tabTextColor="@color/black"
    app:tabIndicatorColor="@color/colorPrimary"/>

<android.support.v4.view.ViewPager
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:layout_below="@id/tab_layout"/>

选项卡显示得很好,但是 ViewPager 的内容应该是与每个选项卡关联的 Fragments 的布局内容时为空(即AchievOngoingFragmentAchievDoneFragment

我错过了什么吗?

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    我认为你应该在这里使用ChildFragmentManager

    CustomTabPagerAdapter(activity.childFragmentManager)
    

    【讨论】:

    • 把它改成CustomTabPagerAdapter(childFragmentManager) 好像没什么作用
    • @Christopher 你在哪里绑定你的视图寻呼机?
    • 这里不是已经完成了吗:viewPager.adapter = viewpageradapter ?
    • @Christopher 你在这里设置适配器。但是你在哪里初始化 ViewPager 对象呢?
    【解决方案2】:

    您的适配器代码看起来不错,我猜问题出在您的片段上。

    检查这个repo,它有一个工作示例。

    我建议您先从那里复制Fragment1Fragment2,然后在适配器中使用它们来定位问题。

    【讨论】:

    • 即使同时复制适配器和片段,问题仍然存在!浏览器区域为空白。这可能与我的浏览器位于片段中的事实有关吗?
    • 尝试在您的浏览器中使用 android:layout_height="match_parent"。如果这无济于事,我认为您的项目需要更多代码才能解决问题。
    猜你喜欢
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多