2

如果该项目有图片,在我下面的代码中会很好。但如果它是空的,则项目图片看起来是 70dp 大小的空框。我想如果item不包含图片,那么空框会自动填充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();

谢谢。

4

5 回答 5

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>
于 2013-02-12T07:36:48.453 回答
0

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

于 2013-02-12T07:15:14.477 回答
0

logo_article.setVisibility(View.GONE);如果没有要显示的内容,请使用 。而已。

于 2013-02-12T07:16:14.613 回答
0

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

if(isImageAvailable)
{
    iv.setVisibility(View.VISIBLE);
}
else
{
    iv.setVisibility(View.GONE);
}
于 2013-02-12T07:16:29.497 回答
0

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

 ImageView img = (ImageView)findViewById(R.id.logo_article);
 // logic here to find image
 //if no img
 img.setVisibility(View.GONE);
于 2013-02-12T07:16:42.413 回答