怎么用代码实现recyclerview卡片上滑代码用例
时间: 2023-06-03 22:01:36 浏览: 104
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
以下是一个使用 RecyclerView 实现卡片式上滑的代码示例:
```
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> mData;
public MyAdapter(List<String> data) {
mData = data;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.mTextView.setText(mData.get(position));
}
@Override
public int getItemCount() {
return mData.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
TextView mTextView;
ViewHolder(View itemView) {
super(itemView);
mTextView = itemView.findViewById(R.id.text_view);
}
}
}
public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private MyAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = findViewById(R.id.recycler_view);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
List<String> data = new ArrayList<>();
for (int i = 0; i < 20; i++) {
data.add("Item " + i);
}
mAdapter = new MyAdapter(data);
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
// 上滑动态添加数据
if (!recyclerView.canScrollVertically(1)) {
List<String> newData = new ArrayList<>();
for (int i = mAdapter.getItemCount(); i < mAdapter.getItemCount() + 10; i++) {
newData.add("Item " + i);
}
mAdapter.addData(newData);
}
}
});
}
}
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> mData;
public MyAdapter(List<String> data) {
mData = data;
}
public void addData(List<String> newData) {
mData.addAll(newData);
notifyDataSetChanged();
}
// 省略其他方法
}
```
在这个例子中,我们先定义了一个 RecyclerView 的适配器 MyAdapter,并在其中定义 ViewHolder 来展示每个卡片的内容。在该适配器中,我们实现了上滑动态添加数据的功能,同时还提供了 addData() 方法,用于增加新的数据。然后我们在 MainActivity 中创建了 RecyclerView,并设置了相对应的 Adapter 和 LayoutManager,并添加了一个滑动监听器,在上滑到底部时动态更新数据。
阅读全文