PubuActivity
public class PubuActivity extends AppCompatActivity {
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pubu);
recyclerView = findViewById(R.id.recycler_View);
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(staggeredGridLayoutManager);
StaggerAdapter adapter=new StaggerAdapter(this);
String[] avatarArray=new String[]{
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1544442373811&di=848a4182d8f35674317cd145fa09fa88&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Fface%2Faf5068ab80526f8d4a9acb8907277b534c633d07.jpg",
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1545037250&di=866ab32daebc69e66bcb041b97340fb7&imgtype=jpg&er=1&src=http%3A%2F%2Fhellorfimg.zcool.cn%2Fpreview%2F293300162.jpg",
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1544452449351&di=9063f14cfc8d124e7ed08c635f677d19&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2Ff9dcd100baa1cd11a438a2e9b312c8fcc2ce2d69.jpg"
};
for (int i = 0; i <30 ; i++) {
User user = new User();
user.setName("张"+i);
user.setAvatar(avatarArray[i%avatarArray.length]);
adapter.addItem(user);
}
recyclerView.setAdapter(adapter);
recyclerView.setItemAnimator(new DefaultItemAnimator());
}
}
StaggerAdapter
public class StaggerAdapter extends RecyclerView.Adapter<StaggerAdapter.VH> {
private Context context;
private final List<User> mData;
public void addItem(User user) {
if (user != null) {
mData.add(user);
}
}
public StaggerAdapter(Context context) {
this.context = context;
this.mData = new ArrayList<>();
}
@NonNull
@Override
public VH onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View inflate = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.staggerlayout, viewGroup, false);
return new VH(inflate);
}
@Override
public void onBindViewHolder(@NonNull VH vh, int i) {
User user = mData.get(i);
vh.title.setText(user.getName());
Glide.with(context).load(user.getAvatar()).into(vh.avatar);
vh.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
@Override
public int getItemCount() {
return mData.size();
}
public static class VH extends RecyclerView.ViewHolder {
private final TextView title;
private final ImageView avatar;
public VH(@NonNull View itemView) {
super(itemView);
title = itemView.findViewById(R.id.title);
avatar = itemView.findViewById(R.id.avatar);
}
}
}
布局
android.support.v7.widget.RecyclerView
android:layout_height="match_parent"
android:id="@+id/recycler_View"
android:layout_width="match_parent"/>
LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
ImageView
android:id="@+id/avatar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
android:adjustViewBounds="true"/>
TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="1"
/>
/LinearLayout>