ListView中的ImageView提供了额外的图像

时间:2016-03-24 10:12:17

标签: java android

我在ListView中添加ImageView时会得到一个额外的图标,如下所示。这是什么以及如何删除它? enter image description here

在我的内容中,它也会显示,选中时会突出显示此处显示的ImageView enter image description here

xml代码在这里:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="anaxin.newshellas.Feed"
    tools:showIn="@layout/activity_feed">

    <ListView
        android:choiceMode="singleChoice"
        android:listSelector="@android:color/darker_gray"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/feedView"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:clickable="false" />
    <TextView
        android:id="@+id/textTop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:textStyle="bold"
        />
    <TextView
        android:id="@+id/textBot"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12sp"
        android:layout_below="@+id/textTop"
        />
    <ImageView
        android:layout_below="@+id/textTop"
        android:layout_alignParentRight="true"
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/image"
       />
</RelativeLayout>

我使用带有两行的SimpleAdapter(textTop,TextBot)来填充我的listView,如下所示:

final SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.content_feed,
                new String[]{"First Line", "Second Line"},
                new int[]{R.id.textTop, R.id.textBot}) {
            public View getView(int position, View convertView, ViewGroup parent) {
                View view = super.getView(position, convertView, parent);
                return view;
            }
        };

在添加项目的方法中

Map<String, String> datum = new HashMap<>(2);
            datum.put("First Line", article.getTop());
            datum.put("Second Line", article.getBot());
            data.add(datum);

3 个答案:

答案 0 :(得分:1)

您的布局文件中有额外的ImageView和2个额外的TextView。这些应该在列表适配器的布局文件中,而不是在包含listview本身的布局中。尝试删除这些额外的视图,这可能会解决您的问题

答案 1 :(得分:1)

首先不要混淆ListView和其他元素,例如TextViewImageView,这些元素应该在单个项目布局中。因此,您在单个列表中看到多个图像。

另一件值得注意的事情是android:layout_below="@+id/textTop"属性在ImageViewTextView中也存在冲突,所以我建议你也要解决这个问题。

其余的代码足够好!!

答案 2 :(得分:0)

删除列表视图中的所有内容,例如

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="anaxin.newshellas.Feed"
tools:showIn="@layout/activity_feed">
<ListView
    android:choiceMode="singleChoice"
    android:listSelector="@android:color/darker_gray"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/feedView"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:clickable="false" />

你不需要它们