使用include findViewById 返回null

layout 文件如下:

1
2
3
4
5
6
7
8
9
10
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_chat_root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background">

<include
android:id="@+id/head_include"
layout="@layout/layout_activity_head" />
</RelativeLayout>

layout_activity_head 布局如下:

1
2
3
4
5
6
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/head_ly"
android:layout_width="match_parent"
android:layout_height="44dip"
android:background="#ff5cc1cb">
</RelativeLayout>

findViewById(R.id.head_ly) 返回值为null

原因:include 设置了id,会覆盖掉layout_activity_head布局文件中根layout 的 id

解决办法: findViewById(R.id.layout_activity_head) 或者 去掉 include 的id