Android 如何在文本旁边有图标的列表视图?
我正试图创建一个带有图标和文本的列表视图,但正如您在屏幕截图中看到的那样,有一个小问题(只有很小一部分文本可见!):Android 如何在文本旁边有图标的列表视图?,android,android-layout,android-listview,Android,Android Layout,Android Listview,我正试图创建一个带有图标和文本的列表视图,但正如您在屏幕截图中看到的那样,有一个小问题(只有很小一部分文本可见!): 以下是创建此布局的xml文件: //The overall layout <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:la
以下是创建此布局的xml文件:
//The overall layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >
<ListView
android:id="@+id/ListView01"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</LinearLayout>
// this layout is for single rows
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/lIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/lText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
对行使用相对布局,并将文本放置在图像右侧,如下所示:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/lIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/lText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/lIcon"/>
</RelativeLayout>
尝试将ListView和TextView的
布局\u宽度设置为填充\u父项
编辑:您正在重置getView
中的列表项宽度。删除或更正代码这与适配器中单行充气的方式有关
你应该尝试使用
LayoutInflater#充气(layoutId,parent,false)
如本答复所述:
尝试将此布局用于行布局:
将ID调整为您的。。还要注意android:layout\u-toRightOf-id
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/bimage"
android:layout_height="20dip"
android:layout_width="20dip"
android:layout_gravity="left|center"
android:layout_marginTop="10dip"
android:layout_marginLeft="5dip"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
/>
<TextView
android:id="@+id/btitle"
android:layout_toRightOf="@id/bimage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="8dip"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:textSize="18dip"
android:textColor="#ffffff"
android:gravity="center_vertical"
/>
</RelativeLayout>
我已经这样做了,但完全一样!我想问题应该出在ListView布局上,因为它没有扩展到占用整个可用空间。这正是我创建列表项的方式。我已经设置了一个自定义适配器,用于对各自的布局进行充气。为了确保,您已经提供了最后两个参数:parent(不为null)和false(用于attachToRoot)?为了供您参考,我在问题中包含了我的适配器的getView。请尝试替换myView=li.充气(R.layout.listicon,null)
使用myView=li.inflate(R.layout.listicon,parent,false)
将列表行项目宽度显式设置为90。那是你真正想要的吗?啊,谢谢你。这一直是个问题。我在其他活动中复制了此方法,但忘记设置适当的维度。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/bimage"
android:layout_height="20dip"
android:layout_width="20dip"
android:layout_gravity="left|center"
android:layout_marginTop="10dip"
android:layout_marginLeft="5dip"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
/>
<TextView
android:id="@+id/btitle"
android:layout_toRightOf="@id/bimage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="8dip"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:textSize="18dip"
android:textColor="#ffffff"
android:gravity="center_vertical"
/>
</RelativeLayout>