Android findViewById在include的内部视图上返回null
我也有类似的问题,像这个线程 我也有类似的问题: 调用包含块的xml:Android findViewById在include的内部视图上返回null,android,android-layout,include,Android,Android Layout,Include,我也有类似的问题,像这个线程 我也有类似的问题: 调用包含块的xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...> <include android:id="@+id/popupMenu" layout="@layout/mainmenu_popup" />
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
...>
<include
android:id="@+id/popupMenu"
layout="@layout/mainmenu_popup" />
</RelativeLayout>
以及包含所含代码的mainmenu_popup.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:visibility="gone"
android:layout_marginTop="@dimen/action_bar_height"
android:layout_width="0dp"
android:layout_height="0dp">
<fragment
android:id="@+id/mainmenupopup_fragment"
class="RetailMobile.MainMenuFragment" />
<TextView
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_below="@id/mainmenupopup_fragment"
android:background="@color/dark_blue"
android:id="@+id/blueLine" />
<RelativeLayout
...
</RelativeLayout>
</RelativeLayout>
将android:id添加到mainmenu\u popup.xml中的RelativeLayout中,然后按此处定义的id查找视图我找到了解决方案
主菜单\u popup.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/popup_mainmenu">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/popup_mainmenu_inner"> ...
...
然后我指的是弹出菜单\u主菜单\u内部:
this.Activity.FindViewById<RelativeLayout>(Resource.Id.popup_mainmenu_inner);
this.Activity.findviewbyd(Resource.Id.popup\u主菜单\u内部);
您试图获取什么视图?在什么活动生命周期事件中调用findViewById?如果您在设置活动的contentView之前调用它,那么它将失败。在对其布局进行充气后,我尝试从片段的OnCreateView方法访问它(使用)。目前为止我不太高兴,因为我发现如果我的父容器是片段(其中我调用FindViewById(Resource.Id.popup\u main menu\u inner)
),它仍然为空,仅当父容器是FragmentActivity或Activity时才有效
this.Activity.FindViewById<RelativeLayout>(Resource.Id.popup_mainmenu_inner);