黑马程序员技术交流社区
标题:
android 可下拉刷新layout 适用ScrollView
[打印本页]
作者:
吴光新
时间:
2013-8-13 00:37
标题:
android 可下拉刷新layout 适用ScrollView
1、可下拉控件类
<P>package com.common;
import java.util.Calendar;
import com.adv.R;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.ScrollView;
import android.widget.Scroller;
import android.widget.TextView;
import android.widget.LinearLayout.LayoutParams;
/**
* 刷新控制view
*
* @author Nono
*
*/
public class RefreshableView extends LinearLayout {
private static final String TAG = "LILITH";
private Scroller scroller;
private View refreshView;
private ImageView refreshIndicatorView;
private int refreshTargetTop = -60;
private ProgressBar bar;
private TextView downTextView;
private TextView timeTextView;
private LinearLayout reFreshTimeLayout;//显示上次刷新时间的layout
private RefreshListener refreshListener;
private String downTextString;
private String releaseTextString;
// private Long refreshTime = null;
private int lastX;
private int lastY;
// 拉动标记
private boolean isDragging = false;
// 是否可刷新标记
private boolean isRefreshEnabled = true;
// 在刷新中标记
private boolean isRefreshing = false;
Calendar LastRefreshTime;
private Context mContext;
public RefreshableView(Context context) {
super(context);
mContext = context;
}
public RefreshableView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
init();
}
// ........................
</P>
<P>//代码太多,请从文件里获取</P>
复制代码
2、刷新界面代码
<?xml version="1.0" encoding="utf-8"?>
<!-- android:layout_marginTop="-50.0dip"隐藏 -->
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="50.0dip"
android:layout_marginTop="-50.0dip" xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:src="@drawable/refresh_arrow_down" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<ProgressBar
android:id="@+id/progress"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateBehavior="repeat"
android:max="10000"
android:visibility="gone" />
<TextView
android:id="@+id/refresh_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5.0dip"
android:gravity="center_vertical"
android:text="松开手指刷新"
android:textSize="14.0sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/refresh_time_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="3dp" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="上次刷新时间:"
android:textSize="10sp" />
<TextView
android:id="@+id/refresh_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0分钟"
android:textSize="10sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="前"
android:textSize="10sp" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="fill_parent"
android:layout_height="5dp"
android:layout_alignParentBottom="true"
android:background="#ffc8b67a" />
</RelativeLayout>
</LinearLayout>
复制代码
3、使用代码
RefreshableView mRefreshableView =findViewById(R.id.refresh_root);
mRefreshableView.setRefreshListener(new RefreshListener() {
@Override
public void onRefresh(RefreshableView view) {
// TODO Auto-generated method stub
//刷新代码
}
});
//刷新完毕后
mRefreshableView.finishRefresh();
复制代码
4、下载:RefreshScroll.rar ~ 161KB
RefreshScroll.rar
(161.16 KB, 下载次数: 305)
2013-8-13 00:22 上传
点击文件名下载附件
作者:
日后再说
时间:
2013-9-24 17:56
的顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者:
日后再说
时间:
2013-9-24 17:56
黑马黑马黑马黑马黑马黑马黑马黑马黑马黑马黑马黑马
作者:
日后再说
时间:
2013-9-24 17:56
黑马黑马黑马黑马黑马黑马
作者:
日后再说
时间:
2013-9-24 17:57
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者:
日后再说
时间:
2013-9-24 17:57
黑马黑马黑马黑马黑马黑马
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2