要在Android RecyclerView中为CardView之间添加边距,可以使用ItemDecoration类来实现。下面是一个示例代码,演示如何在RecyclerView中添加边距:
implementation 'androidx.cardview:cardview:1.0.0'
import android.content.Context;
import android.graphics.Rect;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class RecyclerViewItemDecoration extends RecyclerView.ItemDecoration {
private int space;
public RecyclerViewItemDecoration(Context context, int space) {
this.space = space;
}
@Override
public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
outRect.left = space;
outRect.right = space;
outRect.bottom = space;
// Add top margin only for the first item to avoid double space between items
if (parent.getChildAdapterPosition(view) == 0) {
outRect.top = space;
} else {
outRect.top = 0;
}
}
}
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private RecyclerViewAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recycler_view);
adapter = new RecyclerViewAdapter(/* your data here */);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addItemDecoration(new RecyclerViewItemDecoration(this, 16)); // 设置边距
recyclerView.setAdapter(adapter);
}
}
这样,RecyclerView中的每个CardView之间就会有16dp的边距了。根据你的需求,你可以调整getItemOffsets()方法中的边距数值来适应你的UI设计。