/**
* 适配器
*/
public class Mybase
extends RecyclerView.Adapter<Mybase.MyViewHolder> {
private List<String>
list;
public Mybase() {
list =
new ArrayList<>()
;
for (
int i=
0;i<
30;i++){
list.add(
"数量"+i)
;
}
}
@Override
public MyViewHolder
onCreateViewHolder(ViewGroup parent
, int viewType) {
View inflate = LayoutInflater.
from(parent.getContext()).inflate(R.layout.
recycler_item, null)
;
return new MyViewHolder(inflate)
;
}
@Override
public void onBindViewHolder(MyViewHolder holder
, int position) {
holder.
item_text.setText(
list.get(position))
;
if (position%
2==
1){
holder.
item_img.setImageResource(R.drawable.
tu1)
;
}
}
@Override
public int getItemCount() {
return list.size()
;
}
public class MyViewHolder
extends RecyclerView.ViewHolder{
private final TextView
item_text;
private final ImageView
item_img;
public MyViewHolder(View itemView) {
super(itemView)
;
item_text = (TextView) itemView.findViewById(R.id.
item_text)
;
item_img = (ImageView) itemView.findViewById(R.id.
item_img)
;
}
}
//主方法
public class MainActivity
extends AppCompatActivity {
private RecyclerView
recycle_main;
private Button
btn_main;
private LinearLayoutManager
linearLayoutManager;
private GridLayoutManager
gridLayoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
;
setContentView(R.layout.
activity_main)
;
recycle_main = (RecyclerView) findViewById(R.id.
recycler_main)
;
btn_main = (Button) findViewById(R.id.
btn_main)
;
linearLayoutManager =
new LinearLayoutManager(
this)
;
gridLayoutManager =
new GridLayoutManager(
this, 3)
;
gridLayoutManager.setSpanSizeLookup(
new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(
int position) {
return 3 - position %
3;
}
})
;
StaggeredGridLayoutManager staggeredGridLayoutManager=
new StaggeredGridLayoutManager(
3,StaggeredGridLayoutManager.
VERTICAL)
;
recycle_main.setLayoutManager(staggeredGridLayoutManager)
;
recycle_main.setAdapter(
new Mybase())
;
btn_main.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
RecyclerView.LayoutManager layoutManager =
recycle_main.getLayoutManager()
;
if (layoutManager==
null){
return;
}
if (layoutManager
instanceof GridLayoutManager){
recycle_main.setLayoutManager(
linearLayoutManager)
;
}
else if (layoutManager
instanceof LinearLayoutManager){
recycle_main.setLayoutManager(
gridLayoutManager)
;
}
}
})
;
}
}