Android ButterKnife绑定include布局失败
include布局
<include
android:id="@+id/tl_reg"
layout="@layout/layout_toolbar"/>
layout_toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:titleTextColor="@color/secondary_text"
/>
</merge>
情况
1.用findViewById可以找到Toolbar,但是用ButterKnife找不到
2.将include的内容替换掉,用ButterKnife可以找到Toolbar
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
给Toolbar填上id试试
这个情况并不需要 merge 吧, 直接将 Toolbar 作为 layout_toolbar.xml 的根元素
其实从原理出发你就会很容易明白,你要绑定的是include中的控件,而不是include,所以自然要为其中的控件定义标识id,要不然无法识别要绑定的对象。并且ButterKnife的本质就是使用了findViewById,如果手动通过findViewById方法也是先获取到include对象,再从中findViewById要绑定的控件。