Android recyclerview 分隔符与内部布局视图对齐
Android recyclerview divider aligned to internal layout views
我知道这必须有一个简单的答案,所以这里是:
这是一张著名的 "chat" Android 应用程序的图片。我的问题是如何模拟红色的行为,即不采用父级屏幕宽度但开始与 recyclerview 项目膨胀布局中的文本视图对齐的分隔线?
我创建了一个 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,而不仅仅是反复试验。
(我也可以在文本视图(位于其自己的布局中)下方创建一个 <View>
来模拟分隔线,但是我如何为其分配 .xml 可绘制对象? )
有什么想法吗?
无需使用mRecyclerView.addItemDecoration
。
只需将分隔线创建为常规视图,将可绘制对象 xml 作为背景并将其添加到项目的布局中 xml。
如果您制作布局的根部 RelativeLayout
,您可以使用分隔线 toRightOf="@+id/some_other_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" />
我知道这必须有一个简单的答案,所以这里是:
这是一张著名的 "chat" Android 应用程序的图片。我的问题是如何模拟红色的行为,即不采用父级屏幕宽度但开始与 recyclerview 项目膨胀布局中的文本视图对齐的分隔线?
我创建了一个 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,而不仅仅是反复试验。
(我也可以在文本视图(位于其自己的布局中)下方创建一个 <View>
来模拟分隔线,但是我如何为其分配 .xml 可绘制对象? )
有什么想法吗?
无需使用mRecyclerView.addItemDecoration
。
只需将分隔线创建为常规视图,将可绘制对象 xml 作为背景并将其添加到项目的布局中 xml。
如果您制作布局的根部 RelativeLayout
,您可以使用分隔线 toRightOf="@+id/some_other_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" />