1

У меня проблема: у меня есть ListView с прослушивателем MULTI_CHOICE, который открывает ContextualActionBar. Для каждого элемента в этом списке я установил задний план в корневом макете. Это XML:Android CAB listview state_selected и state_pressed

<item android:drawable="@color/light_blue_alpha" 
     android:state_activated="true"/> 

<item android:drawable="@color/light_blue" 
     android:state_pressed="true"/> 

<item android:drawable="@drawable/card_background"/> 

В этом случае фоном по умолчанию является макет карты (в основном белый). Когда элемент нажат, фон будет полностью светло-голубым. При активации (через выбор CAB) фон является синим синим с 0,5 альфа.

Это то, что происходит: Я запускаю CAB. Если я выбираю новый элемент во время CAB, элемент меняет фон на light_blue (при нажатии). Когда я отпускаю палец, он меняет фон по умолчанию card_background. Через несколько миллисекунд он активируется, а затем изменяется на light_blue_alpha

Так что в основном я получаю такой мерцающий сине-белый-синий. То, что я хочу достичь, - это «удалить» транзакцию на белом фоне. Например, я вижу, что приложение Gmail делает именно то, что я хочу делать.

Как это можно достичь? Спасибо!!

EDIT: Я попробовал переместить все в корневой списокSelector. Это селектор:

<item android:state_pressed="true" android:drawable="@color/light_blue"/> 
<item android:state_activated="true" android:drawable="@color/light_blue_alpha"/> 
<item android:drawable="@android:color/transparent"/> 

Я также установил drawOnTop истинно, и прессованный фон правильного применения. Но state_activated не делает! Когда я запускаю CAB, элемент возвращается к фону по умолчанию. Почему он не принимает state_activated background?

+0

Можете ли вы приложить «что происходит» и «то, что вы хотите добиться» :) – Gattsu

+0

Правильно. Но я в порядке. Проблема в том, что когда я отпускаю палец на элементе, элемент возвращается к фону по умолчанию и после активации нескольких миллисекунд, поэтому он переходит на активированный фон. Я хочу отключить или скрыть эффект отпущения пальцем. Я хочу, чтобы элемент переместился с прессованного фона на активированный фон DIRECTLY – edoardotognoni

ответ

0

взять одну переменную в адаптере, названную как selected_position, присвоить выбранную позицию позиции этой переменной.

вызова notifydatasetchanged метод адаптера

в методе представления прибудет ставить условие как

если (== selected_position положение) { изменения обратно земля цвет элемента списка } еще { набора по умолчанию цвет фона }

Надеюсь, что это поможет

+0

mmh .. Действительно ли мне нужно наложить код Java? Если я не найду никакого решения, я пойду с этим – edoardotognoni

Смежные вопросы