AtifAbbAsi19 / ViewPager2

Banner and Indicator using ViewPager2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ViewPager2

Banner and Indicator using ViewPager2

         <com.google.android.material.tabs.TabLayout
                android:id="@+id/tabLayout"
                android:layout_width="wrap_content"
                android:layout_height="@dimen/_32sdp"
                android:layout_marginTop="@dimen/_4sdp"
                android:background="@android:color/transparent"
                app:layout_constraintBottom_toTopOf="@+id/pieChart"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:tabBackground="@android:color/transparent"
                app:tabGravity="center"
                app:tabIndicatorHeight="0dp"
                app:tabMode="fixed"
                app:tabPaddingEnd="16dp"
                app:tabPaddingStart="16dp"
                app:tabRippleColor="@null"
                app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
                app:tabTextColor="@drawable/tab_selector">

                <com.google.android.material.tabs.TabItem
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/first_tab" />

                <com.google.android.material.tabs.TabItem
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/second_tab" />

            </com.google.android.material.tabs.TabLayout>
            
            
            ViewCompat.setBackgroundTintList(
            itemViewHolder.logo,
            ColorStateList.valueOf(Color.parseColor(YELLOW_COLOR)))
                
            DrawableCompat.setTint(arrowSign.getDrawable(),
            ContextCompat.getColor(arrowSign.getContext(), R.color.orange));

            DrawableCompat.setTint(inviteButton.getBackground(),
            ContextCompat.getColor(inviteButton.getContext(), R.color.darkBlack));



private fun updateUiFlow(inflated: View) {

    val tabLayout = inflated.findViewById<TabLayout>(R.id.tabLayout)
    val pager = inflated.findViewById<ViewPager2>(R.id.pager)
    pager.adapter =  PagerAdapter(this)

    TabLayoutMediator(tabLayout, pager, TabLayoutMediator.TabConfigurationStrategy { tab, position ->

        when (position) {
            0 -> {
                tab.text = resources.getString(R.string.first_tab)
            }
            1 -> {
                tab.text = resources.getString(R.string.second_tab)
            }
        }
        //for first time initialization tab will call for each view
    }).attach()
    addTabChangeListener(tabLayout)
}

private fun addTabChangeListener(tabLayout: TabLayout) {

    tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
        override fun onTabReselected(tab: TabLayout.Tab?) {
        }

        override fun onTabUnselected(tab: TabLayout.Tab?) {
        }

        override fun onTabSelected(tab: TabLayout.Tab?) {
            when (tab!!.position) {
                0 -> {
                    tab.text = resources.getString(R.string.first_tab)
                }
                1 -> {
                    tab.text = resources.getString(R.string.second_tab)
                }
            }
        }
    })
}



for scroll issue 

https://stackoverflow.com/questions/62200351/nested-viewpager2 https://github.com/android/views-widgets-samples/blob/master/ViewPager2/app/src/main/java/androidx/viewpager2/integration/testapp/NestedScrollableHost.kt

About

Banner and Indicator using ViewPager2

License:Apache License 2.0


Languages

Language:Kotlin 100.0%