android 动态设置textview selector,android.R.attr.state_selected textview无效

TextView tv = (TextView) View.inflate(parent.getContext(), itemResId, null);
                            tv.setPadding(11 * oneDp, 7 * oneDp, 11 * oneDp, 7 * oneDp);
                            {
                                GradientDrawable drawableDefault = new GradientDrawable();

                                drawableDefault.setShape(GradientDrawable.RECTANGLE);
                                drawableDefault.setCornerRadius(16 * oneDp);
                                drawableDefault.setStroke(oneDp / 2, ContextCompat.getColor(parent.getContext(), R.color.user_tag_gray_line_color));
                                drawableDefault.setColor(ContextCompat.getColor(parent.getContext(), android.R.color.transparent));

                                GradientDrawable drawableChecked = new GradientDrawable();
                                drawableChecked.setShape(GradientDrawable.RECTANGLE);
                                drawableChecked.setCornerRadius(16 * oneDp);
                                drawableChecked.setColor(colorSelectedBg);

                                StateListDrawable stateListDrawable = new StateListDrawable();
                                stateListDrawable.addState(new int[]{android.R.attr.state_checked}, drawableChecked);
                                stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, drawableChecked);

                                stateListDrawable.addState(new int[]{}, drawableDefault);
                                tv.setBackground(stateListDrawable);
                            }
                            tv.setText(tag);

注意点

  1. stateListDrawable.addState(new int[]{}, drawableDefault); 放到addState的最后;
  2. TextView android.R.attr.state_selected 是无效的,使用checked
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值