package mcxtzhang.recyclerviewdemo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.LinearSnapHelper;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import com.mcxtzhang.commonadapter.rv.CommonAdapter;
import com.mcxtzhang.commonadapter.rv.ViewHolder;
import java.util.ArrayList;
import java.util.List;
import mcxtzhang.recyclerviewdemo.itemlistener.OnItemTouchListener;
import mcxtzhang.recyclerviewdemo.zxt.FlowLayoutManager;
public class MainActivity extends AppCompatActivity {
private RecyclerView mRv;
private CommonAdapter<TestBean> mAdapter;
private List<TestBean> mDatas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initDatas();
mRv = (RecyclerView) findViewById(R.id.rv);
//mRv.setLayoutManager(new CstLinearLayoutManager());//一个Demo
//mRv.setLayoutManager(new CstLM());//学习仿造国外大神
FixedGridLayoutManager layoutManager = new FixedGridLayoutManager();//国外大神
//layoutManager.setTotalColumnCount(2);
//mRv.setLayoutManager(layoutManager);
//mRv.setLayoutManager(new ZxtCstLM2());//自己的第一个成品
mRv.setLayoutManager(new FlowLayoutManager());//自己写的流式布局
mRv.setLayoutManager(new LinearLayoutManager(this/*,LinearLayoutManager.HORIZONTAL,false*/));
new LinearSnapHelper().attachToRecyclerView(mRv);
//mRv.setLayoutManager(new CstSysLM(this));
mRv.addOnItemTouchListener(new OnItemTouchListener<ViewHolder, TestBean>(this, mRv, mDatas) {
@Override
protected void onItemClick(ViewHolder viewHolder, TestBean data, View itemView, int position) {
Log.d("TAG1", "onItemClick() called with: itemView = [" + itemView + "], viewHolder = [" + viewHolder + "], position = [" + position + "]");
}
@Override
protected void onItemLongClick(ViewHolder viewHolder, TestBean data, View itemView, int position) {
Log.d("TAG1", "onItemLongClick() called with: itemView = [" + itemView + "], viewHolder = [" + viewHolder + "], position = [" + position + "]");
}
});
mRv.setAdapter(mAdapter = new CommonAdapter<TestBean>(this, mDatas, R.layout.item_rv_1) {
@Override
public int getItemViewType(int position) {
return position;
}
private int lastHeight = 0;
@Override
public void convert(ViewHolder holder, TestBean testBean) {
Log.d("zxt", "convert() called with: holder = [" + holder + "], testBean = [" + testBean + "]");
holder.setText(R.id.tv, testBean.getName() + testBean.getUrl());
holder.setOnClickListener(R.id.tv, new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("TAG1", "onClick() called with: v = [" + v + "]");
}
});
//add by zhangxutong Feature1: 不同大小的Item也适应
/* if (holder.getAdapterPosition() == 0) {
ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams();
if (layoutParams != null) {
lastHeight = layoutParams.height;
layoutParams.height = 500;
} else {
lastHeight = 0;
layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 500);
}
holder.itemView.setLayoutParams(layoutParams);
} else {
ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams();
if (layoutParams != null) {
layoutParams.height = lastHeight;
} else {
layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 500);
}
holder.itemView.setLayoutParams(layoutParams);
}*/
}
});
}
private int i = 0;
public List<TestBean> initDatas() {
mDatas = new ArrayList<>();
for (int j = 0; j < 600; j++) {
mDatas.add(new TestBean((i++) + " ", "张"));
mDatas.add(new TestBean((i++) + " ", "旭童"));
mDatas.add(new TestBean((i++) + " ", "多种type"));
mDatas.add(new TestBean((i++) + " ", "遍"));
mDatas.add(new TestBean((i++) + " ", "多种type"));
mDatas.add(new TestBean((i++) + " ", "多种type"));
mDatas.add(new TestBean((i++) + " ", "多种type"));
mDatas.add(new TestBean((i++) + " ", "多种type"));
}
return mDatas;
}
public void add(View vIew) {
mDatas.add(new TestBean((i++) + " ", "新增的一个Item"));
mAdapter.notifyDataSetChanged();
}
public void del(View vIew) {
mDatas.remove(mDatas.size() - 1);
mAdapter.notifyDataSetChanged();
}
/*private void initDatas() {
int i = 0;
mDatas = new ArrayList<>();
for (int j = 0; j < 1; j++) {
mDatas.add(new TestBean((i++) + "", "http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg"));
mDatas.add(new TestBean((i++) + "", "http://fudaoquan.com/wp-content/uploads/2016/04/wanghong.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_03/2016_03_25/201603259771458878793312_origin.jpg"));
mDatas.add(new TestBean((i++) + "", "http://p14.go007.com/2014_11_02_05/a03541088cce31b8_1.jpg"));
mDatas.add(new TestBean((i++) + "", "http://news.k618.cn/tech/201604/W020160407281077548026.jpg"));
mDatas.add(new TestBean((i++) + "", "http://www.kejik.com/image/1460343965520.jpg"));
mDatas.add(new TestBean((i++) + "", "http://cn.chinadaily.com.cn/img/attachement/jpg/site1/20160318/eca86bd77be61855f1b81c.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_04/2016_04_12/201604124411460430531500.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_04/2016_04_24/201604244971461460826484_origin.jpeg"));
mDatas.add(new TestBean((i++) + "", "http://www.lnmoto.cn/bbs/data/attachment/forum/201408/12/074018gshshia3is1cw3sg.jpg"));
mDatas.add(new TestBean((i++) + "", "http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg"));
mDatas.add(new TestBean((i++) + "", "http://fudaoquan.com/wp-content/uploads/2016/04/wanghong.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_03/2016_03_25/201603259771458878793312_origin.jpg"));
mDatas.add(new TestBean((i++) + "", "http://p14.go007.com/2014_11_02_05/a03541088cce31b8_1.jpg"));
mDatas.add(new TestBean((i++) + "", "http://news.k618.cn/tech/201604/W020160407281077548026.jpg"));
mDatas.add(new TestBean((i++) + "", "http://www.kejik.com/image/1460343965520.jpg"));
mDatas.add(new TestBean((i++) + "", "http://cn.chinadaily.com.cn/img/attachement/jpg/site1/20160318/eca86bd77be61855f1b81c.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_04/2016_04_12/201604124411460430531500.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_04/2016_04_24/201604244971461460826484_origin.jpeg"));
mDatas.add(new TestBean((i++) + "", "http://www.lnmoto.cn/bbs/data/attachment/forum/201408/12/074018gshshia3is1cw3sg.jpg"));
}
}*/
}