1惭每,列表布局
//設(shè)置布局管理器?
recyclerview.setLayoutManager(new GridLayoutManager(context, 2));
recyclerview.addItemDecoration(new RecyclerGridDecoration(context));
//設(shè)置Adapter
@Override
public int getItemViewType(int position) {
if (position ==0) {
return HEADER;
? ? }else {
return ITEM;
? ? }
}
@Override
public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
? ? if (managerinstanceof GridLayoutManager) {
final GridLayoutManager gridManager = ((GridLayoutManager) manager);
? ? ? ? gridManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
? ? ? ? ? ? public int getSpanSize(int position) {
int type = getItemViewType(position);
? ? ? ? ? ? ? ? switch (type) {//設(shè)置每種類型的列數(shù)
case ITEM:
case HEADER:
return 1;
? ? ? ? ? ? ? ? ? ? default:
return 2;
? ? ? ? ? ? ? ? }
}
});
? ? }
}
1,瀑布流布局
//設(shè)置布局管理器?
StaggeredGridLayoutManager manager =new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
//? ? ? ? manager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
//? ? ? ? recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
//? ? ? ? ? ? @Override
//? ? ? ? ? ? public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
//? ? ? ? ? ? ? ? super.onScrollStateChanged(recyclerView, newState);
//? ? ? ? ? ? ? ? manager.invalidateSpanAssignments(); //防止第一行到頂部有空白區(qū)域
//? ? ? ? ? ? }
//? ? ? ? });
? ? ? ? recyclerview.setLayoutManager(manager);
@NonNull
@Override
public RecyclerView.ViewHolderonCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType ==HEADER) {
View view = LayoutInflater.from(context).inflate(R.layout.holder_main_home_viewpager, parent, false);
//設(shè)置頭部寬度滿屏
?StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams();
? ? ? ? params.setFullSpan(true);
? ? ? ? return new HeaderHolder(view);
? ? }else {
View view = LayoutInflater.from(context).inflate(R.layout.holder_home_goods, parent, false);
? ? ? ? return new ViewHolder(view);
? ? }
}
//設(shè)置圖片高度
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) holder.img.getLayoutParams();