日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android开发之解决NestedScrollView滑动监听兼容低版本的方法

發(fā)布時間:2023/12/15 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。