Android ScrollView Button的显示隐藏
来源:互联网 发布:embed js获取播放时间 编辑:程序博客网 时间:2024/06/11 19:51
前言
之前工作室招新的项目中有用到, 忘记写下来了, 这个东西网上找到的资料不是很多, 所以趁现在记下来,方便以后查阅.
NestedScrollView
自定义一个View, 别担心, 不会很复杂.
public class NestedScrollView extends ScrollView { private IOnNestedScrollListener mIOnNestedScrollListener; public NestedScrollView(Context context) { super(context); } public NestedScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public NestedScrollView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } /** * @param l 变化后的x位置 * @param t 变化后的y位置 * @param oldl 原先的x位置 * @param oldt 原先的y位置 */ @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); if (mIOnNestedScrollListener != null) { if (t > oldt && t - oldt > 15) { //如果是往下滑动,并且大于15的距离, 那么就回调为显示 mIOnNestedScrollListener.onScroll(true); } else if (t < oldt && oldt - t > 15) { mIOnNestedScrollListener.onScroll(false); } } } public void setOnNestedScrollListener(IOnNestedScrollListener onNestedScrollListener) { mIOnNestedScrollListener = onNestedScrollListener; } //创建一个回调接口 public interface IOnNestedScrollListener { void onScroll(boolean isShow); }}
然后我们在Activity里面这样写:
mScDetails.setOnNestedScrollListener(new NestedScrollView.IOnNestedScrollListener() { @Override public void onScroll(boolean isShow) { if (!isShow) { Animator animator = ObjectAnimator.ofFloat(mBtnDetailsJoin, View.Y, mBtnY); animator.setInterpolator(new AccelerateInterpolator()); animator.start(); mBtnDetailsJoin.setEnabled(true); } else { Animator animator = ObjectAnimator.ofFloat(mBtnDetailsJoin, View.Y, mScreenHeight); animator.setInterpolator(new AccelerateInterpolator()); animator.start(); mBtnDetailsJoin.setEnabled(false); } } });
相信你也看出啦, 我这里使用了动画的效果, 这里为什么要设置button的enabled呢, 因为这个动画结束之后, button的位置是改变了, 但是点击原来的地方还是存在点击事件的.
关于如何获取Button的高度和坐标我这里介绍了一种方法, 还需要其它方法的朋友可以看我的另一篇文章. Android 如何获取Button的高宽、坐标
0 0
- Android ScrollView Button的显示隐藏
- Android Button的隐藏与显示
- android button控制linearlayout的显示隐藏
- 点击button改变div的显示隐藏
- button控制视图的隐藏与显示
- Button 显示与隐藏
- Android 监听scrollview滚动实现ToolBar显示和隐藏的效果
- Android 隐藏ScrollView的滚动条
- scrollview上的button
- android隐藏button
- Button控制图片显示隐藏
- 小程序button控件上下边框的显示和隐藏
- Android ListView与Button的显示
- Android ListView与Button的显示
- 自定义显示小红点的android Button按钮
- Android Button,TextView的显示大小写问题
- Android button自定义显示
- Android ScrollView .顶部栏滑动透明度改变,底部栏滑到特定位置显示或隐藏效果
- 面向开发的测试技术(二):性能测试
- 解决android 6.0 动态相机相册定位权限
- java网络编程整理(待续)
- vuejs 报错 Decimals with leading zeros are not allowed in strict mode
- 二叉搜索树的基本操作-04-树7 二叉搜索树的操作集 (30分)
- Android ScrollView Button的显示隐藏
- Android ViewPager 小圆点 + 无限循环 + 动态滑动
- php高版本不再使用mysql_connect()来连接数据库
- windows平台一个高性能、通用型的C++生产者/消费者架构模板
- Trie树
- 深入JVM分析spring-boot应用hibernate-validator NoClassDefFoundError
- effective STL 读书笔记——第三章:关联容器
- 基于双向链表的增删改查和排序(C++实现)
- [cv]generalized hough transform