android - 将 RecyclerView 项目更改为高于所有其他项目
问题描述
我有包含图像作为项目的水平 recyclerView。如何检测 RecycleView 项目何时位于屏幕中央并强调它是这样的:
例子 :
解决方案
您可以将轮播逻辑与 RecyclerView 组合和 SnapHelper 兼容性类一起使用,如下所示:
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fadingEdge="horizontal"
android:overScrollMode="never"
android:requiresFadingEdge="horizontal" />
然后将您的 recyclerView 附加到 SnapHelper 类:
LinearSnapHelper snapHelper = new LinearSnapHelper();
snapHelper.attachToRecyclerView(recyclerView);
并为当前选择的居中项提供逻辑:
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
float pos = (float) recyclerView.computeHorizontalScrollOffset() / (float) itemHeight;
int itemPos = (int) Math.floor(pos);
}
super.onScrollStateChanged(recyclerView, newState);
}
});
推荐阅读
- php - 在 CodeIgniter 4 的“Tests\Support\UserDatabaseTest”类中找不到测试
- java - 如何从 Kotlin 的工具栏菜单中删除标题?
- android-studio - Android Kotlin:如何设置错误editext使用数据绑定和LiveData
- load - RealityKit:无法从 USDZ 文件加载实体
- elasticsearch - ES查询按parent_id分组
- css - Bootstrap 折叠侧边栏
- javascript - 调整不同纵横比的图像大小以适应 div 而不拉伸它
- javascript - 在反应中使用 json-server 存储数据
- python - 在 Python 中发送带有 Excel 附件的电子邮件
- angular - 角路由问题。App.component 内容显示在每个组件中