Android自定义控件之下拉刷新;
2016-09-02 00:09
218 查看
headerview的布局分析:
整体是水平分布:LinearLayout
左边两个图片为重叠的图片,显示和隐藏的出现,需用相对布局;能重叠在一起。RelativeLayout;
右边是一个上下竖直分布的TextView , 需用 LinearLayout.
控件 widget
android:gravity=”center_horizontal” 自己的内部布局水平居中
android:layout_gravity =”center” 相对于父布局居中指的是控件本身。
ProgressBar
自定义的旋转动画的文件:在drawable下,xml文件根节点rotate旋转;
progressbar的xml layout布局文件;
自定义的RefreshListView继承ListView后使用添加headerView方法需注意:NOTE: Call this before calling setAdapter
下拉刷新——-
1.addHeaderView必须在setAdapter之前调用
2.将paddingTop设置一个headerView高度的负值去隐藏它
第二个需要注意的是:
整体是水平分布:LinearLayout
左边两个图片为重叠的图片,显示和隐藏的出现,需用相对布局;能重叠在一起。RelativeLayout;
右边是一个上下竖直分布的TextView , 需用 LinearLayout.
控件 widget
android:gravity=”center_horizontal” 自己的内部布局水平居中
android:layout_gravity =”center” 相对于父布局居中指的是控件本身。
ProgressBar
自定义的旋转动画的文件:在drawable下,xml文件根节点rotate旋转;
<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/indicate_rotate" android:fromDegrees="0" 0——360度。 android:pivotX="50%" android:pivotY="50%" //相对于xy的位置只能写50%;就是相对自己的一半。 android:toDegrees="360" > </rotate>
progressbar的xml layout布局文件;
<ProgressBar android:layout_width="30dp" android:layout_height="30dp" android:layout_centerInParent="true" android:indeterminate="true" android:indeterminateDrawable="@drawable/indeterminate_drawable" android:indeterminateDuration="1000" />
indeterminate //不确定的,模糊的。默认为true。 style="@android:style/Widget.ProgressBar.Horizontal" //这个进度条是水平的。 默认的图片是转圈的图片。
自定义的RefreshListView继承ListView后使用添加headerView方法需注意:NOTE: Call this before calling setAdapter
下拉刷新——-
1.addHeaderView必须在setAdapter之前调用
2.将paddingTop设置一个headerView高度的负值去隐藏它
第二个需要注意的是:
getHeight()和getMeasuredHeight()的区别: getMeasuredHeight():获取测量完的高度,只要在onMeasure方法执行完,就可以用 它获取到宽高,在自定义控件内部多使用这个 使用view.measure(0,0)方法可以主动通知系统去测量,然后就 可以直接使用它获取宽高 getHeight():必须在onLayout方法执行完后,才能获得宽高 view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { headerView.getViewTreeObserver().removeGlobalOnLayoutListener(this); int headerViewHeight = headerView.getHeight(); //直接可以获取宽高 } });
相关文章推荐
- Android自定义控件之仿京东商城下拉刷新
- android 自定义ListView下拉刷新控件——自定义控件学习(五)
- Android自定义控件之仿美团下拉刷新
- Android自定义组合控件之自定义下拉刷新和左滑删除实例代码
- Android自定义下拉刷新控件(for RecyclerView)
- android 自定义下拉刷新上拉加载控件(SwipeRefreshLayout + recyclerView)
- Android自定义控件之仿美团下拉刷新
- Android自定义控件之仿京东商城下拉刷新
- Android自定义组合控件---教你如何自定义下拉刷新和左滑删除
- android自定义下拉刷新和上拉加载控件
- Android自定义View-下拉刷新控件
- android-- 自定义下拉刷新上拉加载控件(SwipeRefreshLayout + recyclerView)
- Android自定义组合控件---教你如何自定义下拉刷新和左滑删除
- Android自定义控件之仿汽车之家下拉刷新
- Android PullToRefreshView自定义下拉刷新控件
- Android 基于RecyclerView上下拉刷新(让你轻松自定义头部和底部刷新控件)
- 自定义实现类似android主界面的滑屏换屏控件
- Android控件自定义形状
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- android UI进阶之自定义组合控件