listView中有一行我希望与listView具有相同的高度(让我们说它是全屏)。
行布局看起来像
<?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="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/error" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true"
android:layout_marginTop="14dp"
android:minHeight="30dip"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</RelativeLayout>
适配器的getView是
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = inflater.inflate(R.layout.myrow, parent, false);
return row;
}
Bu显示的行与android:layout_height="wrap_content"
的行相同。
布局预览显示填充它的父级的行,我正在使用inflate(R.layout.myrow, parent, false);
,listView肯定是全屏显示的,行只有图像+ textView一样高。
我错过了重要的事情吗?
答案 0 :(得分:5)
我有类似的问题,我想我已经解决了,所以在这里报道。
我的ListView中有更多行,但我希望行高与listview相同,而listview又占用了布局的所有剩余空间。我的行只由一个ImageView组成。我遇到以下问题:
- 我想让较小的图像扩展以占据所有空间 - 较大的图像不得超过行高
如果我发现任何错误,请在此处留言。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.9"
android:gravity="center"
android:orientation="vertical">
<ListView
android:id="@id/lay_main_firma_objekti"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
</ListView>
</LinearLayout>
行布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<TextView
android:id="@+id/xx"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ImageView
android:id="@id/imageView_obj"
android:contentDescription="@string/objektDesc"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignLeft="@id/xx"
android:layout_alignTop="@id/xx"
android:layout_alignRight="@id/xx"
android:layout_alignBottom="@id/xx"
android:scaleType="fitXY"
android:src="@drawable/custom_prazno" />
</RelativeLayout>
然后在Adapter getView中,重要的是
convertView.setMinimumHeight(parent.getMeasuredHeight());
ImageView slika=(ImageView)v.findViewById(R.id.imageView_obj);
slika.setMinimumHeight(parent.getMeasuredHeight());
TextView xx=(TextView)v.findViewById(R.id.xx);
xx.setHeight(parent.getMeasuredHeight());
我认为是。 HTH
答案 1 :(得分:3)
只是想知道为什么你想要一个只包含一行的ListView的特殊原因?而不是直接使用RelativeLayout而不是ListView?
答案 2 :(得分:0)
我最终用硬编码行高。在设置了minimumHeight之后,相对布局存在问题,因此我也将其替换为具有居中重力的LinearLayout。
请让我知道是否有更好的解决方案让Android能够完成这项工作并最大限度地减少硬编码。