我知道这必须有一个简单的答案,所以这里是:
这是一张著名的“聊天”Android 应用的图片。我的问题是如何模拟红色的行为,即不采用父屏幕宽度但开始与 recyclerview 项目膨胀布局中的 TextView 对齐的分隔线?
我创建了一个 chatlist_divider.xml
如下所示:
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="80dp"
android:insetRight="16dp">
<shape>
<size android:height="1dp"/>
<padding
android:bottom="2dp"
android:left="8dp"
android:right="8dp"
android:top="2dp"/>
<solid android:color="@color/colorDivider"/>
<corners android:radius="48dp" />
</shape>
</inset>
并以编程方式使用它如下:
mRecyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), R.drawable.chatlist_divider));
但是结果不会像上图那样完美,因为我在玩 insetLeft
插图的属性,直到感觉正确为止:
这是可以做到的最好的吗?我想要在每个列表项的膨胀布局内正确和明确地对齐 TextView,而不仅仅是反复试验。
(我也可以在 TextView (位于其自己的布局中)下方创建一个 <View>
来模拟分隔线,但我如何才能为其分配 .xml 可绘制对象?)
有什么想法吗?
最佳答案
无需使用mRecyclerView.addItemDecoration
。
只需将分隔线创建为常规 View ,将可绘制 xml 作为背景并将其添加到项目的布局 xml。
如果你制作布局的根RelativeLayout
,你可以有分隔符toRightOf="@+id/some_other_view"
,所以它与项目的 View 正确对齐.
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="3dp"
android:layout_toRightOf="@+id/my_photo_view"
android:background="@drawable/chatlist_divider" />
关于Android recyclerview 分隔符与内部布局 View 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40788950/