我想使用带有viewPager和fragment的选项卡布局,并且我的目标sdk版本是29,并使用anroidx,当我想使用编译'com.android.support:design:26.0.1'时,编译'com.android.support:support- v4:26.0.1'我遇到错误,如何使用此依赖关系?导致剂量用android.support.v4.app.Fragment接受Fragment,我该怎么办?
class 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]
}
}
}
当您使用anroidx时,您将无法使用com.android.support库,也不能使用compile。始终使用实现。
如果使用androidx,请使用此支持库:
implementation 'androidx.appcompat:appcompat:1.1.0'
对于材料设计,请使用此gradle依赖项:
implementation 'com.google.android.material:material:1.1.0'
对于片段,请使用以下片段:androidx.fragment.app