ребенок кликабелен / родитель долго кликабелен - PullRequest
0 голосов
/ 07 июня 2019

У меня есть FrameLayout с TextView.

<FrameLayout
    android:id="@+id/fl_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="?attr/selectableItemBackground">

    <TextView
        android:id="@+id/tv_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:linksClickable="true"
        android:autoLink="email|web|phone"/>
</FrameLayout>

В моем TextView включена автоматическая ссылка для электронной почты / Интернета / телефона, как вы можете видеть.Но у моего FrameLayout есть LongClickListener в коде.

flContainer.setOnLongClickListener { 
        // some work
    }

Но когда я пытаюсь выполнить переход к родительскому FL через дочерний TextView, он не работает, потому что телевизор перехватывает щелчки и не позволяетродитель, чтобы получить longclick.Я знаю простое решение - просто примените тот же longClickListener к TextView, но у меня есть android:background="?attr/selectableItemBackground" на моем FL, поэтому он должен иметь волновой эффект, когда я нажимаю на него, но телевизор потребляет его.Можно ли этого добиться?

1 Ответ

2 голосов
/ 07 июня 2019

Используйте android:addStatesFromChildren="true" в родительском макете. Как указано в документации,

Устанавливает, включают ли нарисованные состояния этой ViewGroup также его детские рисованные штаты. Это используется, например, для создания группы кажется сфокусированным, когда его дочерний текст EditText или кнопка сфокусированы.

Вы можете найти об этом здесь:

android.view.ViewGroup

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...