2017-05-18 3 views
0

nicht aktualisieren Ich möchte den Avatar des Benutzers und seinen Namen dynamisch in der Symbolleiste festlegen, aber es funktioniert nicht. Ich habe versucht, es mit ButterKnife zu binden, und einfach durch View.findViewById half nichts. Eigentlich sind Ansichten nicht Null sogar mit ButterKnife, also habe ich keine Ahnung, warum es nicht funktioniert. Aber ich fand heraus, dass, wenn es nur eine Ansicht in der Symbolleiste ohne Layout gibt, Updates anzeigen.TextView und ImageView in Toolbar

<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> 

init

... 

@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

Könnten Sie nach dem Code, der das Bild/Text setzt? – FlanschiFox

+0

@FierceFox hinzugefügt – shagi

Antwort

0

Versuchen Sie, ohne Buttermesser wie dies zu tun:

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