我有ListView
,我想在每个项目的一侧放置一个小矩形。为此,我做了以下渲染布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="3dp">
<View
android:layout_width="5dp"
android:layout_height="fill_parent"
android:id="@+id/item_color_image"
android:background="@color/wallet_holo_blue_light"
android:layout_marginRight="3dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item_icon_image"
android:src="@drawable/m"
android:layout_toRightOf="@+id/item_color_image"
android:layout_centerVertical="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Business Name"
android:id="@+id/item_title_text"
android:layout_toRightOf="@+id/item_icon_image"
android:layout_marginLeft="3dp"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_alignTop="@+id/item_icon_image" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Distance"
android:id="@+id/item_distance_text"
android:layout_alignLeft="@+id/item_title_text"
android:layout_alignBottom="@+id/item_icon_image"
android:layout_marginBottom="-10dp" />
</RelativeLayout>
当我在一个框架中膨胀这个布局时,它工作得很好.....但是当我在ListView
内膨胀时我得到了这个:
忽略矩形的高度以匹配容器的高度。
我使用此代码对其进行充气:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemView = convertView;
if (itemView == null) {
itemView = inflater.inflate(R.layout.business_item_view, parent, false);
}
Business currentBusiness = businesses.get(position);
ImageView icon = (ImageView) itemView.findViewById(R.id.item_icon_image);
icon.setImageBitmap(currentBusiness.getIcon());
TextView name = (TextView) itemView.findViewById(R.id.item_title_text);
name.setText(currentBusiness.getName());
TextView distance = (TextView) itemView.findViewById(R.id.item_distance_text);
distance.setText("2 Km"); // TODO: Calculate distance
return itemView;
}
我该如何解决这个问题?谢谢!
答案 0 :(得分:1)
将ListView行的根项目设为match_parent for height并不合理;每个项目都将填充ListView。我希望在某个地方自动更改为wrap_content。
如果RelativeLayout的高度为wrap_content,则RelativeLayouts不支持match_parent为高度的孩子。它适用于LinearLayouts,因此您应该考虑切换到它。资料来源:combining wrap_content on parent and fill_parent on child