Ich habe eine Textansicht und eine Bildansicht in lineares Layout mit Gewicht zugewiesen. Dieses lineare Layout ist für Listenelemente. Problem ist manchmal, die URL für Bild, gibt Fehler, so Picasso Bibliothek kehrt auch zu onError(). Für solche Szenarien möchte ich, dass die Textansicht die volle Breite einnehmen soll und nicht das Gewicht.wie Textview Breite basierend auf Bilder aus dem Internet heruntergeladen
Layout-Schnipsel:
<TextView
android:id="@+id/content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:layout_gravity="center_vertical"
android:layout_weight="5" />
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/image"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:layout_weight="2"/>
</LinearLayout>
Picasso-Schnipsel in Adapter:
Picasso.with(mContext).load(mValues.get(position).getString("imageHref"))
.into(holder.mImageView, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
holder.mContentView.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
try {
holder.mContentView.setText(mValues.get(position).getString("description"));
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Dies ist nicht als der Rückruf nach einer gewissen Verzögerung kommt zu funktionieren scheint, und meine Textview ist bereits mit einigen aktualisiert Wert für TextView Breite nach Layout Gewicht.
Set Textview Breite "fill_parent" und der Imageview in onError() -Prozedur verstecken. – AKSiddique