В моем AppCompatImageView есть RecyclerView, которому я хочу установить векторное изображение. Я пробовал много решений, но ни одно из них не работает (векторное изображение не установлено).
Я также проверил этосвязь.
class FunctionAdapter(
private val context: FragmentActivity,
private val methods: MutableList<Method>,
private val viewHolderListener1: ViewHolderListener
) :
RecyclerView.Adapter<FunctionAdapter.ViewHolder>() {
private val viewHolderListener: ViewHolderListener = viewHolderListener1
private var pos: Int? = null
override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
viewHolder.txtViewMethod.text = methods[position].methodName
viewHolder.textViewFuncOne.text = methods[position].funcOne
viewHolder.textViewFuncTwo.text = methods[position].funcTwo
viewHolder.textViewFuncThree.text = methods[position].funcThree
viewHolder.textViewFuncFour.text = methods[position].funcFour
viewHolder.buttonRun.tag = position
if (methods[position].methodNameFlag == true) {
val drawableF = AppCompatResources.getDrawable(context, R.drawable.ic_home)
viewHolder.checkImgView.setImageResource(R.drawable.ic_round_done_all_24px)
viewHolder.checkImgView.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_home))
viewHolder.checkBox.setImageDrawable(drawableF)
viewHolder.checkImgView.setImageDrawable(ContextCompat.getDrawable(context,R.drawable.ic_round_done_all_24px))
viewHolder.checkImgView.setColorFilter(ContextCompat.getColor(context, R.color.colorPrimary))
} else {
// viewHolder.checkImgView.setImageResource(R.drawable.ic_done_black_24dp)
viewHolder.checkImgView
.setColorFilter(ContextCompat.getColor(context, R.color.grey_light))
}}
Как видите, я пробовал setImageResource и setImageDrawable в onBindViewHolder .
<android.support.v7.widget.AppCompatImageView
android:id = "@+id/checkBox_test"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_marginTop = "16dp"
android:layout_marginBottom = "4dp"
app:srcCompat = "@drawable/ic_done_black_24dp"
app:layout_constraintTop_toTopOf = "parent" app:layout_constraintEnd_toStartOf = "@+id/guideline1"
android:layout_marginEnd = "8dp"/>
в чем проблема..?
@МайкМ. это не изменило имидж вообще.
Ну, если вы имеете в виду, что это не изменится, когда это «что-то произойдет», вам нужно будет редактировать вашего вопроса, чтобы предоставить минимальный воспроизводимый пример этого чего-то.
Возможно ли, что методы [position].methodNameFlag всегда ложны?
@KeivanEsbati Я отладил его, и он не всегда был ложным
Какой тип viewHolder.checkBox? Если это android.widget.CheckBox, то у него нет setImageResource метода.
какой вид у checkImgView?
@roghayehhosseini Я добавил вид, но упомянул об этом в первом абзаце своего вопроса.
выше Версии 21 вы должны выполнить следующие шаги:
В приложении build.gradle необходимо указать:
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
если вы хотите использовать Build Version API 21 ниже, вы должны добавить эту строку в метод onCreate().
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
Я поставил AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); в onCreate() моего фрагмента, и это сработало.
Как именно не работает?