0

나는 TabLayout을 Android에서 ViewPager과 함께 사용하고 있습니다. 코드를 실행할 때마다 TabLayout 표시기가 이상하게 작동합니다. 다음 탭으로 자동 스 내핑하는 대신 가로 스크롤 막대처럼 동작합니다. 그래서 TabLayout 인디케이터는 말 그대로 두 개의 탭 사이에 매달려 있습니다. 그리고 오류가 없습니다. 여기 내 코드입니다 :이상한 Android TabLayout 표시기 스크롤 버그

onCreate() 방법 :

val tabLayout = findViewById<TabLayout>(R.id.tl) 
val viewPager = findViewById<ViewPager>(R.id.vp) 

viewPager.adapter = AmpPagerAdapter(supportFragmentManager) 
tabLayout.setupWithViewPager(viewPager) 

val icons = arrayOf(R.drawable.ic_hot_24dp, R.drawable.ic_person_24dp) 
icons.forEachIndexed { index, i -> tabLayout.getTabAt(index)?.setIcon(i) } 

내 FragmentPagerAdapter :

class AmpPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) { 

    private val pages = arrayListOf(Fragment(), Fragment()) 
    override fun getItem(position: Int): Fragment = pages[position] 
    override fun getCount(): Int = pages.size 
} 

먼저 내가 너무 많은 탭을 추가 생각하지만 그건 내 페이지 Array와 같은 경우가 아니다 목록 길이는 2입니다. 탭을 클릭하면 표시기가 제대로 작동합니다.

무엇이 문제입니까?

답변

0

좋아요, 문제는 제가 FragmentPagerAdapter에 기본 조각 클래스 인 Android에서 으로 레이아웃이 첨부되어 있다는 것입니다. 내 조각을 만들고 레이아웃을 부 풀릴 때 TabLayout 표시기가 제대로 작동하기 시작했습니다.

실제로 실제 문제는 에는 부풀려진 레이아웃이 없었습니다. 그래서 기본 Fragment 클래스를 채우는 것이 문제였습니다.