Некоторые элементы имеют черный фон при использовании списка с градиентным фоном в Android

Я устанавливаю цвет фона для выбранного элемента в списке следующим образом;

@Override
public View getView(int position, View convertView, ViewGroup parent) {

        if (position == containerFragment.vList.getCheckedItemPosition()) {
        convertView.setBackgroundResource(R.color.listview_selected_background);
        } 
        else {
            convertView.setBackgroundResource(R.color.listview_default_background);
        }
        return convertView;
}

И определения цвета такие;

<color name="listview_default_background">#00000000</color>
<color name="listview_selected_background">#333333</color>

Если я не использую градиент, все работает нормально, но когда я использую градиент «android:windowBackground»; некоторые элементы имеют черный фон. Любые идеи?


person syloc    schedule 24.09.2012    source источник
comment
Вы пытались сделать CachHintColor для ListView прозрачным?   -  person Mohammad Ersan    schedule 25.09.2012
comment
@МошЭрсан; Да. Это странное поведение. Не все предметы черные. Например, когда я выбираю второй элемент; его фоновый цвет установлен на #333333, что нормально. Но когда я прокручиваю вниз; 9-й, 15-й, 21-й и так далее становятся черными.   -  person syloc    schedule 25.09.2012
comment
попробуйте войти if (position == containerFragment.vList.getCheckedItemPosition()) { Log.d(tag,"checkedItem:"+position);   -  person Mohammad Ersan    schedule 25.09.2012
comment
если это печатает более одного значения, то ваша проблема в другом месте.   -  person Mohammad Ersan    schedule 25.09.2012


Ответы (1)


Если вы хотите решить эту проблему, используйте атрибут cacheColorHint и значение @android:color/transparent с тегом ListView.

Полный код

<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="@android:color/transparent" />
person muratoner    schedule 30.06.2016