использовать tablayout с фрагментами и viewPager (kotlin) - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу использовать tablayout с viewPager и фрагментом, и моя целевая версия SDK - 29 и использовать anroidx, когда я хочу использовать compile 'com. android .support: design: 26.0.1', compile 'com. android .support: support-v4: 26.0.1 'Я получил ошибку, как можно использовать эту зависимость? вызвать согласие принять фрагмент с android .support.v4.app.Fragment, что мне делать?

класс MainActivity: AppCompatActivity () {

private var tabLayout: TabLayout? = null
var viewPager: ViewPager? = null

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    viewPager = findViewById(R.id.viewpager) as ViewPager
    setupViewPager(viewPager!!)

    tabLayout = findViewById(R.id.tabs) as TabLayout
    tabLayout!!.setupWithViewPager(viewPager)

}

private fun setupViewPager(viewPager: ViewPager) {
    val adapter = ViewPagerAdapter(supportFragmentManager)
    adapter.addFragment(OneFragment(), "ONE")
    adapter.addFragment(TwoFragment(), "TWO")
    adapter.addFragment(ThreeFragment(), "THREE")
    viewPager.adapter = adapter
}

internal inner class ViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager) {
    private val mFragmentList = ArrayList<Fragment>()
    private val mFragmentTitleList = ArrayList<String>()

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

    override fun getCount(): Int {
        return mFragmentList.size
    }

    fun addFragment(fragment: Fragment, title: String) {
        mFragmentList.add(fragment)
        mFragmentTitleList.add(title)
    }

    override fun getPageTitle(position: Int): CharSequence {
        return mFragmentTitleList[position]
    }
}

}

1 Ответ

0 голосов
/ 28 апреля 2020

Когда вы используете anroidx, вы не можете использовать com. android .Поддержка библиотеки и не используйте компиляцию. всегда используйте реализацию.

если вы используете androidx, тогда используйте эту библиотеку поддержки:

implementation 'androidx.appcompat:appcompat:1.1.0'

для дизайна материала используйте эту зависимость gradle:

implementation  'com.google.android.material:material:1.1.0'

для фрагмента используйте это фрагмент: androidx.fragment.app

...