Android listview imageview和textview,如果图像为空,则将textview向左移动

时间:2013-02-12 07:11:45

标签: android android-layout

如果项目有图片,我的代码下面会很好。但如果它是空的那么项目图片看起来是空盒子,大小为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();

感谢。

5 个答案:

答案 0 :(得分:1)

不要修复图片视图大小。将图像宽度更改为wrap_content。如果图像有手段显示图像的测试权。没有图像意味着图像宽度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>

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

当您发现ImageView到GONE没有图像集可见性时,以编程方式

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