我有一个横向RecyclerView
看起来像这样(显然)
-------------------------------
| | | | | |
| 1 | 2 | 3 | 4 | 5 |
| | | | | |
-------------------------------
我想这样做:
------------------------------
| / / / / |
| 1 / 2 / 3 / 4 / 5 |
| / / / / |
-------------------------------
创建这样的RecyclerView
的最佳方式是什么?
注意:我不是要创建一个倾斜的分隔符。我正在尝试创建一个倾斜的布局。通过倾斜,我的意思是掩盖不旋转。项目应具有match_parent
ImageView
和TextView
。两者应该看起来笔直,而不是旋转。另请注意第一项和最后一项。
以下是一个示例:
答案 0 :(得分:3)
我建议您使用Squint
使用以下代码创建布局xml。此布局文件通过显示图像和文本在回收器视图中呈现单行。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:squint="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_marginLeft="-25dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.intrusoft.squint.DiagonalView
android:id="@+id/diagonalView"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:scaleType="centerCrop"
squint:angle="10"
squint:diagonalDirection="bottom_to_top"
squint:gravity="right"/>
<TextView
android:background="#80000000"
android:layout_width="150dp"
android:layout_height="30dp"
android:gravity="center"
android:textColor="#FFF"
android:id="@+id/txtName"
android:layout_alignBottom="@+id/diagonalView"
android:layout_alignLeft="@+id/diagonalView"
android:layout_alignStart="@+id/diagonalView"/>
</RelativeLayout>
编写自定义适配器后,应按如下方式准备RecyclerView。
LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); // make it horizontal
recyclerView.setLayoutManager(layoutManager);
此解决方案可能不是完美的解决方案。有一些缺陷点,例如 android:layout_marginLeft =“ - 25dp” 。至少它可以给你一个想法。
答案 1 :(得分:0)
我不知道您问题的确切答案,但我建议您创建自己的DividerItemDecoration。
有关详情,请查看:https://developer.android.com/reference/android/support/v7/widget/DividerItemDecoration.html
答案 2 :(得分:0)
您似乎无法真正做RecyclerView
,因为这些观点不会重叠。此时,您可能需要考虑扩展水平ScrollView
,并将图像和其他元素拼接成一个您通过覆盖onDraw
方法滚动的长视图。您可以在onTouch
方法覆盖中处理点击事件。这看起来像一个非常大的项目,特别是如果你有很多图像并且必须管理内存。