Is it possible to extend a ViewFlipper as a custom View so that i could set an xml attribute for the first page to show in the preview?
To see if it works i tried an example that should show the third page in the preview, but it doesn't work. This is the example in kotlin:
class ViewFlipperEng: ViewFlipper {
  constructor(context: Context): super(context) {
    init(context)
  }
  constructor(context: Context, attrs: AttributeSet): super(context, attrs) {
    init(context)
  }
  private fun init(cxt: Context) {
    displayedChild = 2
    invalidate()
    //also tried showNext or showPrevious
  }
}
                UPDATE: i found the answer on my own, don't know if there could be better solutions, here is what i've done:
class ViewFlipperEng : ViewFlipper {
    var initialPage:Int=0;
    constructor(context: Context) : super(context){
        initialPage=0
    }
    constructor(context: Context, attrs: AttributeSet):    super(context, attrs){
        if (attrs != null) {
            // Attribute initialization
            val a: TypedArray = context.obtainStyledAttributes(attrs, R.styleable.ViewFlipperEng, 0, 0);
            initialPage = a.getInt(R.styleable.ViewFlipperEng_displayedChild,0);
        }
    }
    override fun onAttachedToWindow()
    {
        displayedChild=initialPage
        super.onAttachedToWindow()
    }
}
in res/values/attrs.xml i've added the attribute displayedChild
<resources>
    <declare-styleable name="ViewFlipperEng">
        <attr name="displayedChild" format="integer" />
    </declare-styleable>
</resources>
for to use this new Custom view just use in your layout:
<com.yourpackage.ViewFlipperEng
            android:id="@+id/view_flipper_example"
            android:layout_width="match_parent"
            app:displayedChild="2"        
            android:layout_height="match_parent">
...declare your views here (at least 3 views since we are using displayedChild="2")
</com.yourpackage.ViewFlipperEng>
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With