recycleView 瀑布流
来源:互联网 发布:天刀男号捏脸数据 编辑:程序博客网 时间:2024/06/07 01:08
compile 'com.yqritc:recyclerview-flexibledivider:1.4.0'
public class MainActivity extends AppCompatActivity {
@BindView(R.id.sv)
SpringView sv;
@BindView(R.id.rv)
RecyclerView rv;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
sv.setHeader(new DefaultHeader(this));
sv.setFooter(new DefaultFooter(this));
sv.setType(SpringView.Type.FOLLOW);
sv.setListener(new SpringView.OnFreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
sv.onFinishFreshAndLoad();
}
}, 1000);
}
@Override
public void onLoadmore() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
sv.onFinishFreshAndLoad();
}
}, 1000);
}
});
HorizontalDividerItemDecoration horizontalDividerItemDecoration = new HorizontalDividerItemDecoration.Builder(this)
.color(Color.RED)
.build();
rv.addItemDecoration(horizontalDividerItemDecoration);
adapter = new MyAdapter(this);
rv.setAdapter(adapter);
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, LinearLayout.VERTICAL);
rv.setLayoutManager(staggeredGridLayoutManager);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://qhb.2dyt.com/Bwei/news?type=9&postkey=109rff1d1AK")
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show();
System.out.println("=====111");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String string = response.body().string();
runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
LogBean logBean = gson.fromJson(string, LogBean.class);
List<LogBean.ListBean> list = logBean.getList();
adapter.setData(list);
}
});
}
});
}
}
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private List<Bean.ListBean> list ;
private int itemWidth ;
public MyAdapter(Context context) {
this.context = context;
Point point = Utils.getDisplayInfomation(context);
itemWidth = point.x / 3 ;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.adapter, parent, false);
IViewHolder viewHolder = new IViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if(holder instanceof IViewHolder){
IViewHolder iViewHolder = (IViewHolder)holder;
// float scale = (float) itemWidth / (float) list.get(position).getPicWidth() ;
// params.width = itemWidth;
// params.height = (int)( (float)scale * (float)list.get(position).getPicHeight()) ;
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) iViewHolder.adapterImageview.getLayoutParams() ;
params.width = itemWidth ;
int height = new Random().nextInt(1000);
params.height = height < 300 ? 300 : height ;
iViewHolder.adapterImageview.setLayoutParams(params);
Glide.with(context).load(list.get(position).getPic()).into(iViewHolder.adapterImageview);
}
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
public void setData(Bean bean){
if(this.list == null){
this.list = new ArrayList<>();
}
this.list.addAll(bean.getList());
notifyDataSetChanged();
}
static class IViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.adapter_imageview)
ImageView adapterImageview;
IViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
}
public class Utils {
/**
* 获取设备屏幕尺寸
* @param context
* @return
*/
public static Point getDisplayInfomation(Context context){
DisplayMetrics dm = context.getResources().getDisplayMetrics();
return new Point(dm.widthPixels,dm.heightPixels);
}
}
<com.liaoinstan.springview.widget.SpringView android:id="@+id/sv" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v7.widget.RecyclerView></com.liaoinstan.springview.widget.SpringView>
<ImageView android:id="@+id/tv" android:scaleType="centerCrop" android:layout_width="wrap_content" android:layout_height="wrap_content" />
https://github.com/1507D/MyApplication3
- RecycleView实现瀑布流
- Recycleview实现瀑布流
- recycleview实现瀑布流
- recycleView 瀑布流
- Android RecycleView瀑布流
- RecycleView 实现瀑布流效果
- 瀑布流效果RecycleView+CardView
- 瀑布流 RecycleView 的 StaggeredGridLayoutManager?
- RecycleView 实现瀑布流 添加分隔
- RecycleView的使用(包括瀑布流)
- RecycleView的瀑布流的使用
- RecycleView实现瀑布流的效果
- recycleview瀑布流Item适应图片
- RecycleView实现瀑布流添加分隔线
- RecycleView 瀑布流 及glide网络加载图片
- RecycleView 瀑布流 item 随意拖拽(ItemTouchHelper) 数据交换
- RecycleView实现item错落且高度不同的瀑布流
- RecycleView 瀑布流中加载更多遇到的问题
- LWC 54:696. Count Binary Substrings
- Android控件系列之RadioButton&RadioGroup
- 常用激活函数介绍
- angular-网络请求天气
- 关于Interger和int
- recycleView 瀑布流
- hdu 4734 F(x) 数位DP
- 区间DP 表达式
- [笔记]filter,空字符,0,None都是False应用
- Dubbo之添加到开启自动启动-yellowcong
- BZOJ 2654: tree 最小生成树+二分
- 写struts2遇到的一个小问题
- SpringMVC处理模型数据
- Biorhythms