繁体   English   中英

如何将RecylerView与Fragment布局重叠并使其可单击

[英]How to overlap RecylerView with Fragment layout and make it clickable

我有活动,其中包含RecyclerView中的单词列表。 通过单击“播放”菜单按钮,用户可以启动播放器,该播放器可以为列表中的所有单词发出声音,并像简单的音乐播放器一样操作它们。 播放器由片段组成。 我想要达到的结果。 目前,我自己的活动看起来像这样 在这里,我有2个无法解决的问题:1)片段未正确覆盖recyclerView。 2)片段按钮不可单击。 当我尝试与玩家互动时,会不断单击第一个列表的项目。

为了实现重叠和可点击性,我尝试使用android:alpha和focusable属性,但未带来任何效果。 片段的单击侦听器的代码已被编写。 下面,我发布必要活动的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();
}

尝试下面的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"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM