为了账号安全,请及时绑定邮箱和手机立即绑定

ListView.setSelector(...) 不会将正确的背景颜色应用于所选项目

ListView.setSelector(...) 不会将正确的背景颜色应用于所选项目

三国纷争 2023-05-24 16:14:38
我正在使用 ListViewsetSelector(...)来更改所选项目的背景颜色,虽然颜色确实发生了变化,但它会选择一种默认颜色,而不是我想要的颜色。我想创建一个 ListView ,一次只允许选择一个项目。(几乎)一切正常,但无论我尝试什么,所选项目总是以默认颜色着色。这是我的代码:列表显示:<android.support.constraint.ConstraintLayout    android:id="@+id/account_picker_layout"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/rounded_corner_button" >    <ListView        android:id="@+id/account_picker_list"        android:layout_width="0dp"        android:layout_height="0dp"        android:background="@drawable/account_picker_list_corner"        android:backgroundTint="@color/white"        android:choiceMode="singleChoice"        android:listSelector="@drawable/selection_effect"        app:layout_constraintBottom_toTopOf="@+id/account_picker_divider2"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent">    </ListView>    [...]</android.support.constraint.ConstraintLayout>选择效果.xml:<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">自定义 ListView 适配器仅实现getView(...)背景颜色,不会以任何方式更改背景颜色。从 中的语句可以看出selection_effect.xml,我已经尝试了 android 让我使用的所有可能状态的组合,不用说,应用程序中显示的实际颜色不在我上面定义的颜色中。我错过了什么?
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

添加一个名为 such 的额外属性isSelected到Account类。


class Account {

    ... other attributes

    private boolean isSelected;

}

在:getView_AccountPickerViewAdapter


final Account myAccount = getItem(position);

if (myAccount.isSelected()) {

    // set selected background

} else {

    // set default background

}

当onItemClick列表视图isSelected被点击的账户项目设置为真时。

查看完整回答
反对 回复 2023-05-24
  • 1 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信