Как перекрыть RecylerView с макетом фрагмента и сделать его кликабельным - PullRequest
0 голосов
/ 04 июня 2018

У меня есть активность, которая содержит список слов внутри RecyclerView.Нажав на кнопку меню «Play», пользователь запускает проигрыватель, который может озвучивать все слова из списка и манипулирует ими, как простой музыкальный проигрыватель.Игрок сделан из фрагмента. Результат, которого я хочу достичь. В настоящее время моя собственная деятельность выглядит так .Здесь у меня есть 2 проблемы, которые я не могу исправить: 1) Фрагмент не пересекается правильно.2) Кнопки фрагмента не кликабельны.Когда я пытаюсь взаимодействовать с игроком, первый элемент списка постоянно нажимается.

Чтобы добиться перекрытия и кликабельности, я пытался играть с android: альфа и фокусируемые атрибуты, но это не принесло никакого эффекта.Код слушателя щелчка фрагмента уже написан.Ниже я публикую необходимые xml и java-код активности.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include
        android:id="@+id/toolbar_words"
        layout="@layout/layout_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <!--Container for PlayerFragment-->
        <FrameLayout
            android:id="@+id/player_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/words_recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </RelativeLayout>
</LinearLayout>

</RelativeLayout>

Код из Activity для создания PlayerFragment

@Override
public boolean onOptionsItemSelected(final MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_player:
            initPlayer();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

private void initPlayer() {
    PlayerFragment mPlayerFragment = new PlayerFragment();
    FragmentManager mFragmentManager = getSupportFragmentManager();
    FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction();
    mFragmentTransaction.add(R.id.player_container, mPlayerFragment, PLAYER_FRAGMENT);
    mFragmentTransaction.commit();
}

1 Ответ

0 голосов
/ 25 июля 2019

Попробуйте приведенный ниже код для Recyclerview.

<android.support.v7.widget.RecyclerView
 android:id="@+id/words_recycler_view"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:layout_below="@id/player_container"/>
...