如何解决未解决的参考:setupWithViewPager

时间:2019-05-18 14:54:16

标签: kotlin

我正在尝试在ViewPager上实现TableLayout,但是我不能使用setup.ViewViewr方法,因为android studio表示它是未解决的引用。

此TableLayout和ViewPager应该在片段(AboutFragment.kt)中实现

如果没有TabLayout,我的ViewPager可以很好地工作,我的意思是我可以在片段之间滑动。

有人可以解决吗?

这是我的AboutFragment:


package hr.ferit.brunozoric.taskie.ui.fragments

import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import hr.ferit.brunozoric.taskie.R
import hr.ferit.brunozoric.taskie.ui.adapters.ViewPagerAdapter
import hr.ferit.brunozoric.taskie.ui.fragments.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_about.*



class AboutFragment: BaseFragment() {



    override fun getLayoutResourceId(): Int {
        return R.layout.fragment_about

    }

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



    }

    private fun setupPager() {
        viewPager.adapter = ViewPagerAdapter(fragmentManager!!)
        tabLayout.setupWithViewPager(viewPager)  // I have error in this line :(

    }


    companion object{
        fun newIstance(): Fragment {
            return AboutFragment()
        }
    }

}

这是我的ViewPagerAdapter:


package hr.ferit.brunozoric.taskie.ui.adapters

import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentStatePagerAdapter
import hr.ferit.brunozoric.taskie.ui.fragments.AboutAplicationFragment

class ViewPagerAdapter(manager :FragmentManager) : FragmentStatePagerAdapter(manager) {


    companion object{
        const val NUM_OF_PAGES =2
        const val PAGE_ONE_TITLE = "About Application"
        const val PAGE_TWO_TITLE = "About Author"
    }

    private val frags = mutableListOf<Fragment>(AboutAplicationFragment(),AboutAplicationFragment())
    private val titles = mutableListOf(PAGE_ONE_TITLE, PAGE_TWO_TITLE)

    override fun getItem(position: Int): Fragment {
        return frags[position]
    }

    override fun getPageTitle(position :Int) : String{
        return titles[position]
    }

    override fun getCount(): Int {
        return NUM_OF_PAGES
    }
}

这是带有ViewPager和TabLayout的XML文件:


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                xmlns:app="http://schemas.android.com/apk/res-auto">


  <androidx.viewpager.widget.ViewPager
          android:id="@+id/viewPager"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:layout_below="@id/tabLayout"
          />

  <TableLayout
          android:id="@+id/tabLayout"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_alignParentTop="true"
          />


</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

您使用的是<TableLayout>而不是<TabLayout>