Skip to content

Snappy1

  • Home
  • Android
  • What
  • How
  • Is
  • Can
  • Does
  • Do
  • Why
  • Are
  • Who
  • Toggle search form

[FIXED] android – Making Changes in Layout according to the Position of ViewPager2

Posted on November 11, 2022 By

Solution 1 :

Use registerOnPageChangeCallback in your ViewPager2.

     binding.viewPager2.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {

                override fun onPageScrolled(
                    position: Int,
                    positionOffset: Float,
                    positionOffsetPixels: Int
                ) {
                    super.onPageScrolled(position, positionOffset, positionOffsetPixels)
                    Log.d("Page", "onPageScrolled: $position")
                }

                override fun onPageSelected(position: Int) {
                    super.onPageSelected(position)

                    Log.d("Page", "onPageSelected: $position")

                    // use position and do what ever you want
                    //for 1st page
                    if (position <= 0) {
                        btn.visibility = View.GONE
                    } else {
                        btn.visibility = View.VISIBLE
                    }
                    //for last page
                    if (position + 1 >= args.content.items.size) {
                        btn.visibility = View.GONE
                    } else {
                        btn.visibility = View.VISIBLE
                    }


                }

                override fun onPageScrollStateChanged(state: Int) {
                    super.onPageScrollStateChanged(state)
                }

            })

Solution 2 :

You are using RecyclerView.ViewHolder instead of MyViewHolder in your adapter.
Replace RecyclerView.ViewHolder with MyViewHolder and it should work properly then.

Problem :

I want to make changes in my Layout that contains ViewPager2 according to the position of ViewPager2.
Example -> I want to make a Button Visible when the ViewPager2 has the last item or position.
But I am Not able to do so, Any Help and Suggestions would be Very Helpful Thank You.

My Adapter :

open class ImagesliderAdapter(private val context: Context, private val list: ArrayList<HomePageSlideEntity>, private val viewPager2: ViewPager2): RecyclerView.Adapter<RecyclerView.ViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
        return MyViewHolder(LayoutInflater.from(context).inflate(R.layout.item_imageslider, parent, false))
    }


    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        val model = list[position]
        if(position==list.size-1) {
            viewPager2.post(runnable)
        }
        if(holder is MyViewHolder) {
            holder.itemView.findViewById<ImageView>(R.id.ivimageslider).setImageURI(Uri.parse(model.image))
        }
    }

    override fun getItemCount(): Int {
        return list.size
    }

    private val runnable = Runnable {
        list.addAll(list)
        notifyDataSetChanged()
    }

    private class MyViewHolder(view: View): RecyclerView.ViewHolder(view)
}
READ  [FIXED] java - Environment.getExternalStoragePublicDirectory() in Android 10
Powered by Inline Related Posts
Android Tags:android, android-layout, android-recyclerview, android-viewpager2, kotlin

Post navigation

Previous Post: [FIXED] Unable to connect Firebase in Android Emulator for Flutter Project
Next Post: [FIXED] android – Highlight only one Card in Compose through selection

Related Posts

[FIXED] android – Adding buttons in ARCore Sceneform for the rotation and zooming? Android
[FIXED] android – OnChild event Listener is being called multiple times Android
[FIXED] android – How do I call notifyDatasetChanged on Tabbed Adapter? Android
[FIXED] android – Scrollview on a gridlayout inside a relativelayout with static floating action button Android
[FIXED] Android: suddenly, an AAPT error on multi-argument formatted strings Android
[FIXED] progressive web apps – Address Bar on PWA WebApp (Android) does not go away on adding assetslink.json Android

Archives

  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022

Categories

  • ¿Cómo
  • ¿Cuál
  • ¿Cuándo
  • ¿Cuántas
  • ¿Cuánto
  • ¿Qué
  • Android
  • Are
  • At
  • C'est
  • Can
  • Comment
  • Did
  • Do
  • Does
  • Est-ce
  • Est-il
  • For
  • Has
  • Hat
  • How
  • In
  • Is
  • Ist
  • Kann
  • Où
  • Pourquoi
  • Quand
  • Quel
  • Quelle
  • Quelles
  • Quels
  • Qui
  • Should
  • Sind
  • Sollte
  • Uncategorized
  • Wann
  • Warum
  • Was
  • Welche
  • Welchen
  • Welcher
  • Welches
  • Were
  • What
  • What's
  • When
  • Where
  • Which
  • Who
  • Who's
  • Why
  • Wie
  • Will
  • Wird
  • Wo
  • Woher
  • you can create a selvedge edge: You can make the edges of garter stitch more smooth by slipping the first stitch of every row.2022-02-04
  • you really only need to know two patterns: garter stitch

Recent Posts

  • What color are dead flea eggs?
  • What is Indiana vine?
  • What’s the downside of a Chromebook?
  • Is phosphide the same as phosphorus?
  • Why do you need an S bend?

Recent Comments

No comments to show.

Copyright © 2023 Snappy1.

Powered by PressBook Grid Dark theme