我正在开发一个 Android 应用程序,我想实现一个 RecyclerView,其中项目布局在水平滚动到中心时会发生变化。我在下面添加了一张图片来展示我的目标:
我想要实现的目标: 当 RecyclerView 中的某个项目滚动到中心时,我希望它更改其布局以使其看起来更突出(例如,更大的尺寸、不同的背景等)。
我尝试过的:
我已经实现了一个带有水平LinearLayoutManager的基本RecyclerView。
我搜索了教程,但只能找到标准 RecyclerView 的示例 实施。
到目前为止我的代码: 这是我的 RecyclerView 的基本设置:
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
MyAdapter adapter = new MyAdapter(myData);
recyclerView.setAdapter(adapter);
我的适配器:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<MyData> mData;
public MyAdapter(List<MyData> data) {
this.mData = data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// Bind data to the item
}
@Override
public int getItemCount() {
return mData.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View itemView) {
super(itemView);
}
}
}
如何检测项目何时居中并相应地更改其布局? RecyclerView 中是否有特定的方法或侦听器可以用来实现此效果?
任何指导或代码示例将不胜感激。
为此,您需要使用 viewpager 而不是 recyclerview。 viewpager 就是您所附图片中显示的内容。
看看ViewPager2和这个博客。
一旦设置了 viewpager,您就可以使用任何现有的页面转换器或根据您的自定义需求编写自己的页面转换器。