Android Event Listener Data Binding for ViewPager

后端 未结 3 2058
猫巷女王i
猫巷女王i 2021-01-02 03:36

Is it possible to bind a handler for setOnPageChangeListener to a ViewPager in XML file with the Android Binding functionality?

The demos show onClick events but I

3条回答
  •  执笔经年
    2021-01-02 04:07

    It is possible to do this. You need to implement a custom binding adapter because there is no BindingAdapter classes predefined for View classes from Android support libraries.

    For how to implement the custom adapter you may read this.

    The code should be something like the below, I haven't tested them thoroughly:

    
    

    Your BindingAapter code:

    @BindingAdapter("onPageChangeListener")
    public static void setOnPageChangeListener(ViewPager viewPager, ViewPager.OnPageChangeListener listener) {
        Log.i("setOnPageChangeListener");
    
        // clear listeners first avoid adding duplicate listener upon calling notify update related code
        viewPager.clearOnPageChangeListeners();
        viewPager.addOnPageChangeListener(listener);
    }
    

    P.S. Your handler class being passed should implement ViewPager.OnPageChangeListener.

提交回复
热议问题