0
我有什麼讓RecyclerView項目爲一個網格 - Android電子
我現在有一個RecyclerView
加載一些圖片,其結果是這樣的,
我想要
但是,我想圖像堆積在RecyclerView
像這樣,
目前代碼
這是我目前RecyclerView
項目佈局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/art"
android:layout_gravity="center"
android:layout_marginTop="16dp"/>
</LinearLayout>
,這是我的RecyclerView
public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.MyViewHolder> {
private ArrayList<String> images;
private AdapterCallback mAdapterCallback;
public class MyViewHolder extends RecyclerView.ViewHolder {
public ImageView image;
public MyViewHolder(View view) {
super(view);
image = (ImageView) view.findViewById(R.id.image);
}
}
public ImageAdapter(ArrayList<String> images, Context context) {
this.images = images;
try {
this.mAdapterCallback = ((AdapterCallback) context);
} catch (ClassCastException e) {
throw new ClassCastException("Activity must implement AdapterCallback.");
}
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.image, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
final String imageText = images.get(position);
holder.image.setImageResource(R.drawable.art);
holder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
mAdapterCallback.imageSelected(imageText);
} catch (ClassCastException exception) {
}
}
});
}
@Override
public int getItemCount() {
return images.size();
}
public static interface AdapterCallback {
void imageSelected(String imageText);
}
}
Initializi adpater ng RecyclerView
recyclerView = (RecyclerView) imagesDialog.findViewById(R.id.recycler_view);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
ImageAdapter mAdapter = new ImageAdapter(images, this);
recyclerView.setAdapter(mAdapter);
我該如何達到預期效果?
您需要'GridLayoutManager'。 – EpicPandaForce
看看你如何聲明和設置RecyclerView將會很有用。截圖和適配器是很好的補充,雖然 –
@ cricket_007我添加了'RecyclerView'和@EpicPandaForce的初始化我猜你指的是我在哪裏用戶'RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());'?我應該使用'GridLayoutManger'? –