Android ScrollView中控件顶部悬浮
来源:互联网 发布:python statement 编辑:程序博客网 时间:2024/06/11 21:55
在Scrollview中实现控件置顶时悬浮的方法有很多,这里介绍一种实现起来比较简单的方法.
A和B是需要置顶显示的布局,A是我们额外画出来的布局,B是正常显示的布局.大体思路是在这个页面打开时,通过代码使A布局和B布局重合,监听scrollview的滑动事件,并相应的改变A布局的位置,当A布局没有滑动到顶部时,使它总是和B布局重合,当A布局滑动到顶部时那就让它一直在顶部显示.
public class MyScrollView extends ScrollView {private OnScrollListener onScrollListener;
public MyScrollView (Context context) {
super(context);
}
public MyScrollView (Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setOnScrollListener(OnScrollListener onScrollListener) {
this.onScrollListener = onScrollListener;
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
if (onScrollListener != null) {
onScrollListener.onScroll(t);
}
}
/**
* 滚动的回调接口
*/
public interface OnScrollListener {
/**
* 返回ScrollView滑动的Y方向距离
*
* @param scrollY
*/
public void onScroll(int scrollY);
}
}
自定义ScrollView,定义一个滑动监听接口,返回ScrollView在Y轴上滑动的距离.
在Activity中:
findViewById(R.id.rootLayout).getViewTreeObserver()
.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
onScroll(mMyScrollView.getScrollY());
}
});
rootLayout是这个页面的根部局,添加此监听,当页面布局发生变化时,手动的改变置顶布局的位置,使它和B布局重合
mMyScrollView = (MyScrollView) findViewById(R.id.mMyScrollView); mMyScrollView.setOnScrollListener(new MyScrollView.OnScrollListener() @Override public void onScroll(int scrollY) { int top= Math.max(scrollY, B.getTop()); A.layout(0, top, A.getWidth(), top+ A.getHeight()); } });
在程序中监听自定义的ScrollView的滑动事件,scrollY是scrollView在Y轴上滑动的距离,需要注意的是.getTop()是B布局到scrollView顶部的距离,而不是到屏幕顶端的距离,
它是一个固定的值,top是它们的最大值,然后动态的设置A布局在屏幕中的位置,这样就可以简单的实现布局置顶悬浮的效果了.
如果ScrollView里面嵌套的是Listview,那么需要自定义Listview,重写它的onMeasure方法,不过一般不推荐滑动布局嵌套另一个滑动布局:
@Override/** * 重写该方法,达到使ListView适应ScrollView的效果 */protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec);}
0 0
- Android ScrollView中控件顶部悬浮
- Android ScrollView 上推至顶部使控件悬浮
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- android ScrollView向上滑动 控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- 上滑ScrollView,实现控件顶部悬浮
- Android ScrollView向上滑动控件顶部弹出悬浮框并且淡入淡出
- Scrollview滑到顶部时,顶部控件/标题栏一直在顶部悬浮显示
- android scrollview滑动时悬浮部分控件
- ScrollView中顶部控件显示不完整
- android 中scrollView顶部图片下拉放大
- android开发实现微博正文效果、顶部悬浮、ScrollView嵌套ListView
- android 5.0预制APK
- 为什么要有层次结构?
- 组队列,下载图片,完成后拼接图片
- Web应用——驾培管理系统之系统—权限分配
- 根据字段名查找表名
- Android ScrollView中控件顶部悬浮
- [Android] Material 风格的 Dialog 的使用
- MySQL ROLLUP和CUBE问题
- java并发系列:深入分析Synchronized
- SDTM: AETERM, AESOC, AEDECOD导出到SDTM/TFL中的条件
- iOS 数据库SQLite
- 记一次线上应用连接池满的处理
- c语言文件操作
- android图片压缩质量参数Bitmap.Config RGB_565 ARGB_8888