每次我单击平板电脑上的回收器视图项时,它都会打开一个活动,而不是用片段替换详细信息窗格。以下代码行是我用来检测是否存在详细信息窗格的代码: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。而是将您的布尔标志从您的片段传递到您的适配器!
繁花如伊
TA贡献2012条经验 获得超12个赞
我认为您正在使用 recyclerview item xml 检查项目二盘
mTwoPane = itemView.findViewById(R.id.detail_container) != null;
您可以在构建 recyclerview 适配器时检查并从活动内容视图本身保存它。
添加回答
举报
0/150
提交
取消