Android开发之解决NestedScrollView滑动监听兼容低版本的方法
生活随笔
收集整理的這篇文章主要介紹了
Android开发之解决NestedScrollView滑动监听兼容低版本的方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
NestedScrollView的滑動監(jiān)聽目前僅限api23及以上,為了兼容低版本如下自定義方法
可以自定義NestedScrollView即可如下:
package cn.net.gfan.world.widget;import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.widget.NestedScrollView; import android.util.AttributeSet;/*** 自定義NestedScrollView* 解決滑動監(jiān)聽只能在API23以上才能使用的問題** @author xiayiye5* 2020年8月3日12:56:50*/ public class XiaYiYeNestedScrollView extends NestedScrollView {private OnXiaYiYeScrollChanged mOnXiaYiYeScrollChanged;public XiaYiYeNestedScrollView(@NonNull Context context) {this(context, null);}public XiaYiYeNestedScrollView(@NonNull Context context, @Nullable AttributeSet attrs) {this(context, attrs, 0);}public XiaYiYeNestedScrollView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onScrollChanged(int l, int t, int oldl, int oldt) {super.onScrollChanged(l, t, oldl, oldt);if (mOnXiaYiYeScrollChanged != null) {mOnXiaYiYeScrollChanged.onScroll(l, t, oldl, oldt);}}public void setXiaYiYeOnScrollChanged(OnXiaYiYeScrollChanged onXiaYiYeScrollChanged) {this.mOnXiaYiYeScrollChanged = onXiaYiYeScrollChanged;}public interface OnXiaYiYeScrollChanged {/*** 滑動的方法** @param left 左邊* @param top 上邊* @param oldLeft 之前的左邊* @param oldTop 之前的上邊*/void onScroll(int left, int top, int oldLeft, int oldTop);} }調(diào)用方法:
//設(shè)置滑動監(jiān)聽事件nestNewTopic.setXiaYiYeOnScrollChanged(new XiaYiYeNestedScrollView.OnXiaYiYeScrollChanged() {@Overridepublic void onScroll(int left, int top, int oldLeft, int oldTop) {final int[] colorValue = {0X00000000};float height = ScreenTools.dip2px(getApplicationContext(), 287) - getStatusBarHeight();int startColor = ContextCompat.getColor(mContext, R.color.color_transparent);int endColor = ContextCompat.getColor(mContext, R.color.white);if (top <= 0) {tvTitle.setTextColor(Color.WHITE);ivMainSearch.setImageResource(R.drawable.icon_main_tab_search_white);ivMainMsg.setImageResource(R.drawable.icon_main_tab_msg_white);colorValue[0] = startColor;} else if (top >= height) {//設(shè)置標(biāo)題欄想要的顏色tvTitle.setTextColor(ContextCompat.getColor(parentContext, R.color.color_333));ivMainSearch.setImageResource(R.drawable.icon_main_tab_search);ivMainMsg.setImageResource(R.drawable.icon_main_tab_msg);colorValue[0] = endColor;} else {colorValue[0] = (int) argbEvaluator.evaluate(top / height, startColor, endColor);}//設(shè)置漸變背景色rlTitle.setBackgroundColor(colorValue[0]);}});如上代碼即可
感謝原博主:博主直達(dá)
總結(jié)
以上是生活随笔為你收集整理的Android开发之解决NestedScrollView滑动监听兼容低版本的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果xr型号mt是什么版本
- 下一篇: android sina oauth2.