Цвет строки списка различается для каждой строки

Здравствуйте, я использую Listview с настраиваемым макетом строк. Я использовал LinearLayout в CardView внутри строкового макета Listview. У меня есть несколько градиентных форм, которые можно рисовать, поэтому я хочу передать их фону LinearLayout .. Как я могу передать его linearlayout проблематично, чтобы каждая строка Listview была заполнена разными градиентами. У каждой строки должен быть свой градиентный фон. это мой макет строки для ListView

<android.support.v7.widget.CardView
            android:id = "@+id/card_iq_sidebar"
            android:layout_width = "50dp"
            android:layout_height = "match_parent">

            <LinearLayout
                android:layout_width = "match_parent"
                android:layout_height = "match_parent"
                android:background = "@drawable/circle_purple"
                android:orientation = "vertical"></LinearLayout>
        </android.support.v7.widget.CardView>
1
0
33
1

Ответы 1

Используйте этот код там, где вы управляете своей настраиваемой строкой, поэтому он меняет фон, отображаемый в соответствии с положением адаптера. mainlayout - это ваш linearlayout, но мой код использует только 2 градиента.

Если вам нужны разные цвета для каждой ячейки, определите массив ресурсов и используйте getAdapterPosition() для индекса массива ресурсов. (обратите внимание, что вы можете легко выйти за пределы ошибки)

Информация о массиве ресурсов android с использованием ресурсов массива xml

        if (!(getAdapterPosition() % 2 == 0)){
            mainLayout.setBackgroundResource(R.drawable.bg_dashboard_row_reverse);

        }
        else{
            mainLayout.setBackgroundResource(R.drawable.bg_dashboard_row);

        }

Надеюсь, вы уловили идею.

Другие вопросы по теме