android - 如何根据从互联网下载的图像调整 TextView 宽度

标签 android imageview picasso

我有一个 TextView 和一个线性布局的 ImageView ,并分配了权重。这种线性布局适用于列表项。问题是有时图像的 URL 会出错,因此 Picasso 库也会返回 onError()。 对于这种情况,我希望 TextView 占据完整的宽度,而不是由它的权重决定。

布局 fragment :

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

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();
            }
        }
});

这似乎不起作用,因为回调是在一些延迟之后发生的,并且我的 textView 已经根据布局权重更新了一些 textView 宽度值。

最佳答案

错误时尝试设置可见性GONE:

@Override
public void onError() {
  mImageView.setVisibility(View.GONE);
  [...]
}

如果是 ListView 行那么当成功时你必须设置VISIBLE:

@Override
public void onSuccess() {
  mImageView.setVisibility(View.VISIBLE);
}

关于android - 如何根据从互联网下载的图像调整 TextView 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36223420/

相关文章:

android - 透明背景的 Activity

android - MPAndroidChart - 如何在 LimitLine 左侧显示文本?

java - 为什么我无法从 Fragment 转换为 MyOwnFragment?

android - 当 ScaleType 为矩阵时,如何将图像设置为与父级对齐

android - picasso 不加载图像

android - OnActivityResult 不使用 Picasso 更新 ImageView

android 裁剪 Activity 仅出于 Intent ?

java - 将 ImageView 位图设置为返回的位图

java - Android:我的自定义 ImageView 继承有什么问题?

android - 如何使用 Picasso lib 在 ImageView 上放大和调整图像