2016-11-24 2 views
1

Я знаю, что это должно быть простой ответ, так что здесь идет:Android recyclerview делителя выровнен внутренняя планировка просмотры

Это изображение известного «чат» приложение для Android. Мой вопрос заключается в том, как я могу имитировать поведение в красном цвете, а именно делитель, который не принимает ширину экрана родителя, но начинает выравниваться с текстовыми представлениями в позиции размножения элементов recyclerview?

enter image description here

Я создал 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> 

и Programatically использовали его следующим образом:

mRecyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), R.drawable.chatlist_divider)); 

но OFC результат не будет столь же совершенны, как на изображении выше, потому что Im играет с insetLeft собственностью вставки, пока он не чувствует себя правильно:

enter image description here

Это самое лучшее, что можно сделать? Я хотел иметь правильное и определенное соответствие TextViews внутри раздутого макета каждого элемента списка, а не просто проб и ошибок.

(Я мог бы также создать <View> ниже в TextViews (которые в макете своей собственной), чтобы имитировать делитель, но тогда как я могу назначить его .xml вытяжке?)

Любые мысли?

ответ

2

Не нужно использовать 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" /> 
+0

Спасибо, как я мог забыть атрибут фона!^_ ^ – anony

Смежные вопросы