У меня есть активность, которая содержит список слов внутри 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();
}