Здравствуйте, я использую 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>
Используйте этот код там, где вы управляете своей настраиваемой строкой, поэтому он меняет фон, отображаемый в соответствии с положением адаптера. 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);
}
Надеюсь, вы уловили идею.