我在我的代码中使用了一个复选框,如果默认情况下未启用,该复选框将显示为灰色。这是相同的代码:
public View getView(final Context context, View view) {
if (view == null) {
final LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.item_selectable_textview, null);
}
final CheckedTextView textView = (CheckedTextView) view.findViewById(R.id.selectable_text);
textView.setText(mCategoryName);
if (isDefault()) {
mIsSelected = true;
}
textView.setChecked(mIsSelected);
if(!isEnabled()){
textView.setCheckMarkDrawable(R.drawable.checkbox_selected_grayout);
textView.setBackgroundResource(R.drawable.checkboxline);
textView.setPadding(20, 20, 20, 20);
}
return view;
}
checkbox_selected_grayout 是 checkbox 的图像, checkboxline 的 xml 如下:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<gradient
android:startColor="#202020"
android:endColor="#202020"
android:angle="360.0" />
</shape>
</item>
<item android:top="40dp">
<shape android:shape="rectangle">
<solid android:color="#414141" />
<size android:height="1dp" />
</shape>
</item>
</layer-list>
当我使用复选框导航到视图时,该复选框看起来很好,但是当我滚动到视图底部并返回顶部时,它似乎向右移动并且未与其他复选框对齐,任何线索如何解决?注意:只要我删除 layerlist 并将 ti 切换到单个形状,它就可以正常工作而没有任何变化。