如果您使用的是 NavigationDrawer,那么最好为每个片段编写 recyclerview。
因此,在每个片段中,您可以添加如下代码:[请考虑所有内容都已定义和初始化,是的,我正在使用Universal Image Loader加载图像
// Create global configuration and initialize ImageLoader with this config
ImageLoaderConfiguration config = new
ImageLoaderConfiguration.Builder(this).build();
ImageLoader.getInstance().init(config);
rv_photo_grid = (RecyclerView) findViewById(R.id.rv_photo_grid);
GridLayoutManager layoutManager;
layoutManager = new GridLayoutManager(this, 3);
rv_photo_grid.setLayoutManager(layoutManager);
photoUrls.add("image1");
photoUrls.add("image2");
photoUrls.add("image3");
photoUrls.add("image4");
photoUrls.add("image5");
photoGridAdapter = new PhotoGridAdapter(this, photoUrls);
rv_photo_grid.setAdapter(photoGridAdapter);
您的适配器可以是这样的:
public class PhotoGridAdapter extends
RecyclerView.Adapter<PhotoGridAdapter.ItemHolder> {
private List<String> arraylist;
private Activity mContext;
private boolean isGrid;
ImageLoader imageLoader;
public PhotoGridAdapter(Activity context, List<String> arraylist) {
this.arraylist = arraylist;
this.mContext = context;
imageLoader = ImageLoader.getInstance();
}
@Override
public ItemHolder onCreateViewHolder(ViewGroup viewGroup, int i)
View v = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.item_photo_grid, null);
ItemHolder ml = new ItemHolder(v);
return ml;
}
@Override
public void onBindViewHolder(final ItemHolder itemHolder, int i) {
imageLoader.displayImage(arraylist.get(i),itemHolder.iv_photo);
}
@Override
public int getItemCount() {
return (5);
}
public void updateDataSet(List<String> arraylist) {
this.arraylist = arraylist;
}
public class ItemHolder extends RecyclerView.ViewHolder implements
View.OnClickListener {
protected TextView tv_more_images_count, artist;
protected ImageView iv_photo;
protected View footer;
public ItemHolder(View view) {
super(view);
this.iv_photo = (ImageView) view.findViewById(R.id.iv_photo);
tv_more_images_count = (TextView)
view.findViewById(R.id.tv_more_images_count);
view.setOnClickListener(this);
}
@Override
public void onClick(View v) {
}
}
}
每个片段中的 Recyclerview 可以这样:
<RelativeLayout
android:id="@+id/relativelayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_photo_grid"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
而 item_photo_grid.xml 就像:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="center"
android:orientation="vertical">
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/iv_photo"
android:layout_width="fill_parent"
android:layout_height="150dp"
android:scaleType="fitXY"
app:srcCompat="@drawable/default_placeholder" />
希望这有帮助!
快乐编码^_^