如何设置 ListView 的最大高度?
Posted
技术标签:
【中文标题】如何设置 ListView 的最大高度?【英文标题】:How can I set the maximum height on a ListView? 【发布时间】:2011-04-04 09:50:52 【问题描述】:我想创建一个 UI,其中一半屏幕是 ListView,下半部分是另一个视图。不知道如何指定 ListView 的最大高度。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_
android:layout_
>
<TextView
android:layout_
android:layout_ android:text="Hello StockTwits!"/>
<ListView android:layout_ android:layout_ android:id="@+id/ListView"></ListView><ViewFlipper android:id="@+id/ViewFlipper" android:layout_ android:layout_><LinearLayout android:id="@+id/LinearLayoutST" android:layout_ android:layout_><ImageView android:id="@+id/ImageView01" android:layout_ android:layout_ android:background="@drawable/icon"></ImageView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutChart" android:layout_ android:layout_>
<TextView android:id="@+id/TextView01" android:layout_ android:layout_ android:text="View 2"></TextView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutDetails" android:layout_ android:layout_>
<TextView android:id="@+id/TextView02" android:layout_ android:layout_ android:text="View 3"></TextView>
</LinearLayout>
</ViewFlipper>
</LinearLayout>
【问题讨论】:
我在chintanrathod.com/…创建了一个解决方案 【参考方案1】:您可以将两个元素的权重设置为 1。这将导致它们在屏幕上占用相同数量的空间,前提是两者都需要大于一半。
【讨论】:
【参考方案2】:将您的父线性布局设置为“2” 然后将您的列表视图权重设置为 1,并将其他视图的权重也设置为 1
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical"
android:weightSum="2" >
<ListView
android:id="@+id/ListView"
android:layout_
android:layout_
android:layout_weight="1" >
</ListView><ViewFlipper
android:id="@+id/ViewFlipper"
android:layout_
android:layout_
android:layout_weight="1" >
<LinearLayout android:id="@+id/LinearLayoutST" android:layout_ android:layout_><ImageView android:id="@+id/ImageView01" android:layout_ android:layout_ android:background="@drawable/icon"></ImageView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutChart" android:layout_ android:layout_>
<TextView android:id="@+id/TextView01" android:layout_ android:layout_ android:text="View 2"></TextView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutDetails" android:layout_ android:layout_>
<TextView android:id="@+id/TextView02" android:layout_ android:layout_ android:text="View 3"></TextView>
</LinearLayout>
</ViewFlipper>
</LinearLayout>
我已经更改了你的代码,现在试试这个
【讨论】:
【参考方案3】:通过将最大高度设置为 200dp 解决
【讨论】:
你是如何将 ListView 的最大高度设置为 200dp 的?!看起来 ListView 有一个“minHeight”属性但没有“maxHeight”属性... 他可能做了android:layout_height="200dp"
如果你解决了,在高清(1080pxl)设备上测试你的视图,你永远不会得到不同分辨率设备的通用解决方案以上是关于如何设置 ListView 的最大高度?的主要内容,如果未能解决你的问题,请参考以下文章