package com.example.recyclerview;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<String> list;
private RecyclerView rv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rv = (RecyclerView) findViewById(R.id.rv);
initRV();
}
private void initRV() {
initList();
//得到适配器
MyRreyclerView1 rreyclerView1 = new MyRreyclerView1();
//绑定
rv.setAdapter(rreyclerView1);
//布局效果
GridLayoutManager manager = new GridLayoutManager(this,3);
//绑定布局
rv.setLayoutManager(manager);
}
private void initList() {
list = new ArrayList<>();
for (int i = 0; i < 100; i++) {
list.add("破亚美"+i);
}
}
class MyRreyclerView1 extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
public static final int TYPE_ONE = 1;
public static final int TYPE_TOW = 2;
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//判断展示不同的布局
if (viewType == TYPE_ONE){
View view = View.inflate(MainActivity.this,R.layout.rv1,null);
MyViewHolder1 holder1 = new MyViewHolder1(view);
return holder1;
}else{
View view1 = View.inflate(MainActivity.this,R.layout.tv2,null);
MyViewHolder2 holder2 = new MyViewHolder2(view1);
return holder2;
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
//输入值
if (holder instanceof MyViewHolder1){
((MyViewHolder1) holder).tv.setText("");
}
if (holder instanceof MyViewHolder2){
((MyViewHolder2) holder).im.setText(list.get(position));
}
}
@Override
public int getItemCount() {
return list == null ? 0 :list.size();
}
//判断多条目方法
@Override
public int getItemViewType(int position) {
if (position % 2 ==0 ){
return TYPE_ONE;
}else {
return TYPE_TOW;
}
}
}
//Holder1
class MyViewHolder1 extends RecyclerView.ViewHolder{
private final TextView tv;
public MyViewHolder1(View itemView) {
super(itemView);
tv = (TextView) itemView.findViewById(R.id.tv);
}
}
//Holder2
class MyViewHolder2 extends RecyclerView.ViewHolder{
private final TextView im;
public MyViewHolder2(View itemView) {
super(itemView);
im = (TextView) itemView.findViewById(R.id.tv2);
}
}
}
RecyclerView(多条目)
最新推荐文章于 2021-05-20 15:52:52 发布