Вопрос

Я использую вид галереи, где представление, соответствующее каждому элементу, нетривиально и состоит из текста, а также нескольких кнопок.

Когда я нажимаю, чтобы перетащить вид галереи (где-то не на одном из кнопок) притягивающее состояние кнопки изменяет нажатие и появляется как если бы все кнопки в данный момент нажаты. Кроме того, такое же поведение происходит для выбранного состояния (например, весь текст детских текстов меняет цвет).

Я пытаюсь предотвратить это поведение и нашел атрибут Android: DuplicateParentState XML, а также свойство SetDupluplateParentStateenabled. Похоже, это должно сделать то, что я пытаюсь сделать, но, похоже, не имеет никакого эффекта.

Есть идеи?

Это было полезно?

Решение 2

Не уверен, что в пьесе вступает недвижимость дубликатпараентонатата, но прорыв через источник показывает, что он никогда не учитывается для выбранных и нажатых состояний. Я бы разработал пользовательский класс View и переопределении диспетчеров и диспетчерспрессированных способов.

Другие советы

Может быть, немного на поздней стороне, но победив в этой проблеме, я недавно у меня есть починение.

DispatchsElucted и Dispatchsспользуются не помогут здесь, так как методы, которые вы должны переопределить, являются частными в галерее.

Решение состоит в том, чтобы добавить дополнительный макет (я использовал подкласс Linearlayout) вокруг младшего ребенка, который переопределяет сжатый (логический) и просто игнорирует его. Это предотвращает заставить галерею заставить его прессованное государство на детей, по-прежнему позволяя этим детям быть активированным напрямую, и не останавливая события от распространения вверх.

Если вы возникаете из галереи, чтобы создать собственную пользовательскую версию IT, вы можете просто сделать:

  @Override
  public boolean onDown(MotionEvent e) {
    // Ignore onDown events in order to avoid having every child's state set to 'pressed'
    return true;
  }

Это все равно позволит детям пользовательской галереи правильно получать события щелчков, а также проводить / бросать работы, как предназначено.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top