看过许多APP都有下拉刷新,就想试着做一个简单的下拉刷新
可以参考博客:http://blog.youkuaiyun.com/lmj623565791/article/details/24521483/
布局文件
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/refresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp"
android:layout_marginBottom="69dp">
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@color/colorPrimary"
android:dividerHeight="1dp"></ListView>
</android.support.v4.widget.SwipeRefreshyout>
MainActivity.java
package bzu.edu.cn.pulltorefresh;
import android.graphics.Color;
import android.os.Handler;
import android.os.Message;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {
private ListView lv;
private SwipeRefreshLayout refresh;
private ArrayAdapter<String > adapter;
private List<String > data=new ArrayList<>(Arrays.asList("1","2","3","4","6","7","8"));
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView) findViewById(R.id.lv);
refresh= (SwipeRefreshLayout) findViewById(R.id.refresh);
refresh.setOnRefreshListener(this);
refresh.setColorSchemeColors(Color.RED,Color.BLUE);
adapter=new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,data);
lv.setAdapter(adapter);
}
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 0X110:
data.addAll(Arrays.asList("6","7","8"));
adapter.notifyDataSetChanged();
refresh.setRefreshing(false);
break;
}
}
};
@Override
public void onRefresh() {
handler.sendEmptyMessageDelayed(0X110,2000);
}
}
SwipeRefreshLayout中setColorSchemeColors方法设置颜色,而且里面是int型
其实设置颜色有三个方法 分别是:
- setColorScheme(@ColorInt int… colors) 这个方法已经被遗弃了,它内部其实是调用的下面这个方法:
- setColorSchemeResources(@ColorRes int… colorResIds)
参考博客:http://blog.youkuaiyun.com/CodeNoodles/article/details/70186392
http://blog.youkuaiyun.com/it_transformers/article/details/42143015
是不是很简单,但是加到完整的项目里还需要更多的功能,先从简单的开始。