为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

侃侃无极 2021-12-10 10:43:43
每次我单击平板电脑上的回收器视图项时,它都会打开一个活动,而不是用片段替换详细信息窗格。以下代码行是我用来检测是否存在详细信息窗格的代码: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>
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

这条线路mTwoPane = itemView.findViewById(R.id.detail_container) != null;从您的视图持有人将永远是假的

为什么?

因为,您detail_container不是视图持有者的项目容器的一部分,因此您的视图itemView将始终返回null。而是将您的布尔标志从您的片段传递到您的适配器!


查看完整回答
反对 回复 2021-12-10
?
繁花如伊

TA贡献2012条经验 获得超12个赞

我认为您正在使用 recyclerview item xml 检查项目二盘

mTwoPane = itemView.findViewById(R.id.detail_container) != null;

您可以在构建 recyclerview 适配器时检查并从活动内容视图本身保存它。


查看完整回答
反对 回复 2021-12-10
  • 2 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信