У меня есть FrameLayout с ScrollView и LinearLayout внутри.
И ScrollView, и LinearLayout имеют одинаковые размеры, поэтому они перекрываются, а LinearLayout покрывает и скрывает ScrollView.
ScrollView имеет TextView и кнопку внутри себя.
Это ситуация:
+FrameLayout
+ScrollView
+ LinearLayout 1
+ TextView
+ Button
+LinearLayout 2
Иногда LinearLayout2, который находится вверху, анимируется и исчезает с экрана. По причинам, связанным с макетом, я не могу установить его на УТРО, и это проблема.
После завершения анимации отображается ScrollView, и мне нужно взаимодействовать с ScrollView, например, нажимая кнопку и, очевидно, прокручивая, но все события всегда перехватываются LinearLayout 2, потому что для Visibility всегда установлено значение VISIBLE, даже если на самом деле скрывается за экраном.
Итак, как я могу передать событие касания просмотру прокрутки и его дочерним элементам? ``
** РЕДАКТИРОВАТЬ **
Это мой XML. Так что вы можете понять лучше.
Какая идея?
Этот макет состоит из 4 выдвижных ящиков. Когда пользователь нажимает на одну из них, щелкающий ящик поднимается вверх с анимацией и становится своего рода заголовком, остальные уходят за пределы экрана и прячутся, а вид прокрутки виден готовым к взаимодействию с пользователем.
Например: я щелкаю по второму блоку, третий гаснет, отказ от ответственности, первый вылетает за пределы экрана, а второй, по которому щелкают, переходит в верхнюю часть экрана в качестве заголовка. Если я снова нажму второй блок, который сейчас находится сверху, я восстановлю первоначальный макет, как в начале, всегда с анимацией. Для этого я добавляю Trasparent Layout, который имеет тот же размер, что и ящик, для обработки события щелчка, поэтому я избегаю устанавливать новый макет всякий раз, когда я анимирую ящики.
Что мне нужно, так это взаимодействовать с видом прокрутки, когда он становится видимым, и со всем содержимым внутри него.
ПРОБЛЕМА: Я не могу установить выдвижные ящики, потому что параметр wieght влияет на их высоту, но только на INVISIBLE. Итак, как можно взаимодействовать с представлением прокрутки ниже?
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/programma_layout_root"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<!-- SCROLLVIEW HIDDEN FIRST LAYER -->
<ScrollView android:id="@+id/programma_content_scroll" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="top">
<LinearLayout android:id="@+id/programma_layout_disclaimer_content"
android:layout_height="fill_parent" android:layout_width="fill_parent"
android:orientation="vertical" android:visibility="invisible">
<TextView android:id="@+id/programma_layout_disclaimer_content_text"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="some text..." />
<Button android:id="@+id/programma_layout_disclaimer_content_button"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center|bottom" android:text="CLICK" />
</LinearLayout>
</ScrollView>
<!-- LAYOUT FOREGROUND SECOND LAYER -->
<LinearLayout android:id="@+id/programma_layout_container"
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
android:weightSum="19">
<include android:id="@+id/header_placeholder" layout="@layout/header" />
<!-- DISCLAIMER DRAWER -->
<RelativeLayout android:id="@+id/programma_layout_disclaimer"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight="4" >
</RelativeLayout>
<!-- FIRST DRAWER -->
<RelativeLayout android:id="@+id/programma_layout_first"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight="5" android:visibility="visible"
>
<!-- some stuff here (text, image...) -->
</RelativeLayout>
<!-- SECOND DRAWER -->
<RelativeLayout android:id="@+id/programma_layout_second"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight="5"
>
<!-- some stuff here (text, image...) -->
</RelativeLayout>
<!-- THIRD DRAWER -->
<RelativeLayout android:id="@+id/programma_layout_third"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight="5" >
<!-- some stuff here (text, image...) -->
</RelativeLayout>
</LinearLayout>
<include android:id="@+id/header" layout="@layout/header"
android:layout_gravity="top" />
</FrameLayout>