您的位置:首页 > 其它

TextView的drawableLeft使用选择器不起作用的解决办法

2017-01-17 14:53 399 查看
TextView的drawableLeft使用选择器不起作用的解决办法

我的方法是自定义textview。

public class MyTextView extends TextView implements Checkable{
private boolean mChecked;

private static final int[] CHECKED_STATE_SET = {
android.R.attr.state_checked
};

public MyTextView(Context context) {
super(context);
}

public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected int[] onCreateDrawableState(int extraSpace) {
final int[] drawableState = super.onCreateDrawableState(extraSpace + 1);
if (isChecked()) {
mergeDrawableStates(drawableState, CHECKED_STATE_SET);
}
return drawableState;
}

@Override
public boolean isChecked() {
return mChecked;
}

@Override
public void setChecked(boolean arg0) {
mChecked = arg0;
refreshDrawableState();
}

@Override
public void toggle() {
mChecked = !mChecked;
}
}


此时使用选择器还是不起作用

我们需要在代码中设置一下

tvKind.setChecked(false);
tvKind.setChecked(true);


对于不同的条件进行判断,此时就可以正常使用了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: