我想在工具栏中动态设置用户的头像和他的名字,但它不起作用。我试图用ButterKnife绑定它,而且View.findViewById没什么帮助。实际上,即使使用ButterKnife,视图也不为空,所以我不知道为什么它不起作用。但我发现,如果工具栏中只有一个没有布局的视图,则可以轻松查看更新。
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize">
<LinearLayout
android:id="@+id/toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/avatar"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center_vertical"/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/margin_medium_large"
android:textSize="@dimen/text_size_medium"/>
</LinearLayout>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
初始化
...
@BindView(R.id.avatar)
ImageView mAvatar;
@BindView(R.id.name)
TextView mName;
...
private void initToolbar(String baseUrl, String name) {
Picasso.with(getContext())
.load(baseUrl)
.fit()
.centerCrop()
.into(mAvatar);
mName.setText(name);
}
答案 0 :(得分:0)
尝试在没有Butterknife的情况下这样做:
View v = findViewById(R.id.toolbar_layout);
ImageView image = v.findViewById(R.id.avatar);