У меня следующий (относительный) макет (сверху вниз):
- Верхняя панель со значком, который открывает меню параметров
- Скрытое меню, для которого установлено значение
Visibility.GONE
, пока он не будет открыт - RecyclerView внизу, он занимает оставшуюся часть экрана
Итак, в начале видны только верхняя панель и RecyclerView
. Когда я нажимаю, чтобы отобразить скрытое меню, оно открывается и опускает RecyclerView
вниз, чтобы освободить место для себя. Если я нажимаю кнопки внутри этого скрытого меню, они работают. Сложность заключается в том, что если я нажимаю пустое пространство между этими кнопками ( область экрана, где элементы RecyclerView ИСПОЛЬЗУЕМЫ как ), щелчок передается определенному элементу RecyclerView.
Таким образом, вместо того, чтобы ничего не происходило из-за того, что я щелкнул пустое место, мои щелчки передаются на RecyclerView
, который раньше был там до появления меню параметров.
Я не использую анимацию, только view.visibility = View.VISIBLE
Изменить: дайте мне знать, если вам нужны фотографии для лучшего понимания.
Здесь это мой XML:
<!-- TOP BAR -->
<RelativeLayout
android:id="@+id/topBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="47dp">
<ImageButton
android:id="@+id/topBarButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginStart="10dp"/>
</RelativeLayout>
<!-- RecyclerView -->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_below="@id/hiddenMenu"/>
<!-- Hidden menu -->
<RelativeLayout
android:id="@+id/hiddenMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/topBar"
android:orientation="vertical"
android:visibility="gone">
<EditText
android:id="@+id/hiddenMenutext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is some text" />
<ImageView
android:id="@+id/hiddenMenuImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
/>
</RelativeLayout>