RecyclerView 不会在单击项目时用片段替换详细信息窗格

每次我单击平板电脑上的回收器视图项时,它都会打开一个活动,而不是用片段替换详细信息窗格。


以下代码行是我用来检测是否存在详细信息窗格的代码:


mTwoPane = Objects.requireNonNull(getActivity()).findViewById(R.id.detail_container) != null;

关于放置这行代码的正确位置的任何想法?


活动 XML


<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="match_parent"

    android:layout_height="match_parent">


    <android.widget.Toolbar

        android:id="@+id/masterToolbar"

        android:layout_width="match_parent"

        android:layout_height="?actionBarSize"

        >



        <LinearLayout

            android:id="@+id/singleline_text_layout"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:gravity="center_vertical"

            android:orientation="vertical">


            <TextView

                android:id="@+id/md_toolbar_title"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                style="@android:style/TextAppearance.Material.Widget.ActionBar.Title"/>

        </LinearLayout>


    </android.widget.Toolbar>



    <RelativeLayout

        android:id="@+id/master_container"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        />


</LinearLayout>


侃侃无极
浏览 154回答 2
2回答

绝地无双

这条线路mTwoPane = itemView.findViewById(R.id.detail_container) != null;从您的视图持有人将永远是假的。为什么?因为,您detail_container不是视图持有者的项目容器的一部分,因此您的视图itemView将始终返回null。而是将您的布尔标志从您的片段传递到您的适配器!

繁花如伊

我认为您正在使用 recyclerview item xml 检查项目二盘mTwoPane&nbsp;=&nbsp;itemView.findViewById(R.id.detail_container)&nbsp;!=&nbsp;null;您可以在构建 recyclerview 适配器时检查并从活动内容视图本身保存它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java