无法在工具栏中更新TextView和ImageView

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在工具栏中更新TextView和ImageView相关的知识,希望对你有一定的参考价值。

我想在工具栏中动态设置用户的头像和他的名字,但它不起作用。我试图用ButterKnife绑定它,而且View.findViewById没什么帮助。实际上,即使使用ButterKnife,视图也不会为空,所以我不知道为什么它不起作用。但我发现如果工具栏中只有一个视图没有布局,View很容易更新。

<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);
}
答案

尝试在没有Butterknife的情况下这样做:

View v = findViewById(R.id.toolbar_layout);
ImageView image = v.findViewById(R.id.avatar);

以上是关于无法在工具栏中更新TextView和ImageView的主要内容,如果未能解决你的问题,请参考以下文章

片段 TextView 无法从 parcelable 对象更新

从服务更新textView的最简单方法是什么?

无法修改 NavigationView 中的 TextView

NativeScript TextView:textTransform 无法更新

Android Appwidget textview没有更新

Android ViewPager/PagerAdapter ImageView OutOfMemoryError