Android列表视图imageview和textview,如果图像为空,则textview向左



在我下面的代码中,如果项目有图片,那就太好了。但是如果它是空的,那么项目图片看起来是70dp大小的空框。我希望如果项目不包含图片,那么自动用TextView填充空框,所以如果它是空的,那么图片就没有ImageView,只有TextView。我试图设置ImageView的宽度大小andoid:layout_width="wrap_content",它符合我的要求,但图片的大小参差不齐。有宽的和小的。所以我把它设置成70,使它看起来平坦。

这是我的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:padding="6dip" >
    <ImageView
        android:id="@+id/logo_article"
        android:layout_width="70dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="6dip" />
    <TextView
        android:id="@+id/title_article"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignWithParentIfMissing="true"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@id/logo_article"
        android:gravity="center_vertical"
        android:text="Title Article" />
</RelativeLayout>

我从数据库中获取项目,并将其存储到简单的适配器中,代码为java:

String[] from = { "title", "logo" };
int[] to = { R.id.title_article, R.id.logo_article };
SimpleAdapter adapter = new SimpleAdapter(getBaseContext(),listkatdb,R.layout.per_item_list, from, to);
kategoriListView.setAdapter(adapter);
adapter.notifyDataSetChanged();

谢谢。

不要修改图像视图大小。将图像宽度更改为CCD_ 1。若图像具有显示图像测试权的手段。没有图像意味着图像宽度0dip文本自动出现在左侧。试试这个

   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip" >
<ImageView
    android:id="@+id/logo_article"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentTop="true"
    android:layout_marginRight="6dip" />
<TextView
    android:id="@+id/title_article"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignWithParentIfMissing="true"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@id/logo_article"
    android:gravity="center_vertical"
    android:text="Title Article" />
    </RelativeLayout>

如果为空,则将ImageView的可见性设置为GONE

如果没有要显示的内容,请使用logo_article.setVisibility(View.GONE);。就是这样。

如果没有图像,则需要将ImageView的setVisibility设置为GONE,然后TextView将填充整个宽度。

if(isImageAvailable)
{
    iv.setVisibility(View.VISIBLE);
}
else
{
    iv.setVisibility(View.GONE);
}

当您发现ImageView对GONE 没有图像集可见性时,通过编程

 ImageView img = (ImageView)findViewById(R.id.logo_article);
 // logic here to find image
 //if no img
 img.setVisibility(View.GONE);

最新更新