Как вставить вид между элементами вида переработчика? - PullRequest
0 голосов
/ 22 мая 2019

Мне нужно показать встроенный ползунок (отмечен зеленым) внутри списка recyclerview элементов, как на изображении ниже:

enter image description here

IЯ думаю, что мне нужно что-то изменить в моем recyclerview layout manager, но я понятия не имею, что именно, и думаю, что это довольно сложно.Кроме того, я использую FlexboxLayout здесь.

Итак, не могли бы вы помочь мне с выбором наилучшего подхода к решению этой проблемы?

Ответы [ 2 ]

1 голос
/ 22 мая 2019

Вы можете раздувать другой вид для этой позиции, так как там вы раздувает другой макет.

Этот ответ поможет: - RecyclerView с несколькими типами представлений

Основная суть в том, чтобы использовать getItemViewType и возвращать флаг, скажем, 1 для первого красного поля, 2 для второго и 3 для третьего и раздувать разметку в зависимости от параметра viewType (в подписи)

0 голосов
/ 22 мая 2019

Вы можете легко решить, чтобы сделать макет, как это.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@color/recycler_view_item_background_color">

    <!-- Red layout-->
    <LinearLayout
        android:id="@+id/red_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="@dimen/item_performance_list_padding"
        android:orientation="vertical">

        <TextView
            android:id="@+id/performance_date_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""/>        

    </LinearLayout>

    <!-- Blue Layout-->
    <LinearLayout
        android:id="@+id/blue_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/text_item_divider" />

</LinearLayout>

Вы можете показать или скрыть синий макет для каждого элемента в соответствии с вашими потребностями.

LinearLayout blueLayout = (LinearLayout) findViewById(R.id.blue_layout);
blueLayout.setVisibility(View.GONE); // hide
blueLayout.setVisibility(View.VISIBLE); // show
...