android安卓定义,安卓自定义Behavior
自定义Behavior,最外层布局必须是CoordinatorLayout
实现的效果,上滑隐藏TextView,下滑显示TextView
效果如下:
GIF.gif
public class BottomShowBehavior extends CoordinatorLayout.Behavior{
public BottomShowBehavior(Context context, AttributeSet attrs) {
super(context,attrs);
}
// 这个方法的回调时机 : 即将发生嵌套滚动时 nestedScrollAxes 用于判断滑动的方向
@Override
public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, TextView child, View directTargetChild, View target, int nestedScrollAxes) {
return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL;
}
//发生嵌套滚动的时候 回调
@Override
public void onNestedScroll(CoordinatorLayout coordinatorLayout, TextView child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {
//向下滑动
if (dyConsumed + dyUnconsumed > 0) {
//隐藏child
if (child.getVisibility() == View.VISIBLE) {
Anim.bottomHide(child);
}
//向上滑动
} else {
//展示child
if (child.getVisibility() != View.VISIBLE) {
Anim.bottomShow(child);
}
}
}
}
public class Anim {
public static void bottomShow(View show) {
//展示的动画
show.clearAnimation();
Animation animationShow = AnimationUtils.loadAnimation(show.getContext(), R.anim.main_tab_bottom_show);
show.startAnimation(animationShow);
show.setVisibility(View.VISIBLE);
}
public static void bottomHide(View gone) {
//消失的动画
gone.clearAnimation(); //清楚自身动画
Animation animationGone = AnimationUtils.loadAnimation(gone.getContext(), R.anim.main_tab_bottom_hide);
gone.startAnimation(animationGone);
gone.setVisibility(View.INVISIBLE);
}
}
main_tab_bottom_hide.xml
android:duration="300"
android:fromYDelta="0"
android:toYDelta="100%" />
main_tab_bottom_show.xml
android:duration="300"
android:fromYDelta="100%"
android:toYDelta="0" />
别忘了在string里面设置behavior属性
BehaviorLibrary
com.sloop.behaviorlibrary.design.BottomShowBehavior
使用app:layout_behavior="@string/bottom_show_behavior" 设置即可
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
android:id="@+id/tv_bottom"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_gravity="bottom"
android:background="#f00"
android:gravity="center"
android:text="我是底部"
android:textColor="#fff"
app:layout_behavior="@string/bottom_show_behavior" />
android安卓定义,安卓自定义Behavior相关推荐
- android弹出框自定义按钮,安卓(kotlin)自定义弹出框
在安卓开发中,我们经常会遇到这种情况,就是可爱的UI们设计了一套属于我们自己风格的弹出框,为了彰显我们自己的风格,使用自动的dialog当然满足不了我们的需求,所以还是得这基础上写出我们自己的提示框, ...
- Android怎么自定义充电铃声,安卓手机怎么自定义充电提示音_自定义安卓充电提示音教程_3DM手游...
安卓手机其实也是可以设置充电提示音的,我们只需要下载一个第三方软件,然后在APP中进行一些简单的设置,就可以实现自定义更换手机充电提示音了.安卓手机怎么自定义充电提示音?下面小编就为大家带来了详细的教 ...
- 安卓学习随笔 -- 自定义标题栏
在安卓中不喜欢系统默认的标题栏,那么如何让自定义一个自己的标题栏呢. 自定义后的标题栏如下: 首先这里需要定义一个自定义的标题栏布局 title.xml文件 (里边需要两个图片这个很简单) <R ...
- 国内支持原生android吗,定制安卓和原生Android到底有哪些不同之处?彻底真相了...
相信大家都知道最近在搞机圈有个大新闻,就是小米即将于8月份推出MIUI 9.近日小米MIUI市场副总监@黄龙中 就在微博上征求米粉意见,暗示MIUI 9可能长下面这样. 小米最新官方主题<几何& ...
- Android Studio 下安卓 jni 开发错误 undefined reference to AndroidBitmap_getInfo
博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 又掉坑里了 今天开发 uvc,又遇到了坑: 和之前的这个坑类似:Android Studio 下安卓 jni 开发错误 ...
- Android Platform Architecture 安卓平台架构
Android Platform Architecture 安卓平台架构 Android is an open source, Linux-based software stack created f ...
- android11电视,适用于Android TV的安卓11更新:提高性能与隐私
你知道智能电视也有适配的安卓11吗?在前几日,手机上的安卓11终于更新,紧接着,适用于Android TV的安卓11也发布了更新推送,更多信息和XDA小编一起往下看吧! 昨日,谷歌Pixel5有了最新 ...
- Android自定义Behavior第十六式之空中楼阁
前言 & 初步分析 上个月鸿神在群里推荐一位同学的Flutter版WanAndroid项目的时候发现了一个炫酷的效果: 嗯,就是一个下拉进入二楼的效果,但因为这个项目是用Flutter做的,无 ...
- 原生android 定制,定制安卓和原生Android到底有哪些不同之处?
相信大家都知道最近在搞机圈有个大新闻,就是小米即将于 8 月份推出 MIUI 9.近日小米 MIUI 市场副总监 @黄龙中 就在微博上征求米粉意见,暗示 MIUI 9 可能长下面这样. 小米最 ...
最新文章
- 使用git命令上传本地文件到GitHub上
- not exists 跟not in 纪念一下
- HTML的标签描述5
- mysql语句中的sum(if(exp1,exp2,exp3))
- 静态布局、自适应布局、流式布局、响应式布局、弹性布局简析、BFC
- windows怎么下载安装python-windows下numpy下载与安装图文教程
- 25 | 基础篇:Linux 磁盘I/O是怎么工作的(下)
- LinkdedList
- java广度优先遍历
- C#与halcon联合开发——内存溢出
- 我们边吃曲奇边聊——Cookie与Session那些事
- VS Code 直接跳到下一行编辑快捷键
- 20190501-整数翻转
- Mac上编译Qt源码教程
- 学计算机是为了什么演讲稿,求大学计算机协会职位申请书和演讲稿
- 怎么看软件的编写代码
- 智力题解题报告 No.4 9个点10个线
- Python编程要点:列表操作和Python的Fraction类(代码实现和练习)
- 数学建模复习——代码记录
- 拼多多败诉,砍价始终差0.9%一案宣判;​微信内测同一手机号可注册两个账号功能;2022年度菲尔兹奖公布|极客头条
热门文章
- 【2022年终总结】会者定离,一期一祈
- html各种日期正则表达式,日期正则表达式_常用的日期时间正则表达式
- 在Visual Studio中构建编译FFmpeg
- Android 数据库和存储文件(第十五 十六 十七节课)
- 不擅于社交的原因?如何提高社交能力?
- taro框架 Switch组件不兼容android手机
- 如何快速提高英语的词汇量
- 制作网格化专题地图(不一样的专题地图)——2000年石家庄土地利用程度网格化图
- 计算机二级预测卷谁的比较好,2017年计算机二级考试《MSOffice》预测试题及答案...
- Linux常用命令(日常操作这一篇就够了)