Android自定义控件之下拉刷新;

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();
                    //直接可以获取宽高
            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值