【问题标题】:How can I set the maximum height on a ListView?如何设置 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_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" android:text="Hello StockTwits!"/>


<ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ListView"></ListView><ViewFlipper android:id="@+id/ViewFlipper" android:layout_width="fill_parent" android:layout_height="fill_parent"><LinearLayout android:id="@+id/LinearLayoutST" android:layout_height="fill_parent" android:layout_width="fill_parent"><ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/icon"></ImageView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutChart" android:layout_height="fill_parent" android:layout_width="fill_parent">

<TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 2"></TextView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutDetails" android:layout_height="fill_parent" android:layout_width="fill_parent">
<TextView android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 3"></TextView>
</LinearLayout>
</ViewFlipper>



</LinearLayout>

【问题讨论】:

标签: android listview android-widget


【解决方案1】:

您可以将两个元素的权重设置为 1。这将导致它们在屏幕上占用相同数量的空间,前提是两者都需要大于一半。

【讨论】:

    【解决方案2】:

    将您的父线性布局设置为“2” 然后将您的列表视图权重设置为 1,并将其他视图的权重也设置为 1

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:weightSum="2" >
    
    
    <ListView
        android:id="@+id/ListView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1" >
    </ListView><ViewFlipper
            android:id="@+id/ViewFlipper"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1" >
    <LinearLayout android:id="@+id/LinearLayoutST" android:layout_height="fill_parent" android:layout_width="fill_parent"><ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/icon"></ImageView>
    </LinearLayout>
    <LinearLayout android:id="@+id/LinearLayoutChart" android:layout_height="fill_parent" android:layout_width="fill_parent">
    
    <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 2"></TextView>
    </LinearLayout>
    <LinearLayout android:id="@+id/LinearLayoutDetails" android:layout_height="fill_parent" android:layout_width="fill_parent">
    <TextView android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 3"></TextView>
    </LinearLayout>
    </ViewFlipper>
    
    
    
    </LinearLayout>
    

    我已经更改了你的代码,现在试试这个

    【讨论】:

      【解决方案3】:

      通过将最大高度设置为 200dp 解决

      【讨论】:

      • 你是如何将 ListView 的最大高度设置为 200dp 的?!看起来 ListView 有一个“minHeight”属性但没有“maxHeight”属性...
      • 他可能做了android:layout_height="200dp"
      • 如果你解决了,在高清(1080pxl)设备上测试你的视图,你永远不会得到不同分辨率设备的通用解决方案
      猜你喜欢
      • 2016-10-26
      • 2017-07-30
      • 1970-01-01
      • 2017-05-22
      • 2019-04-09
      • 1970-01-01
      • 1970-01-01
      • 2020-02-10
      • 1970-01-01
      相关资源
      最近更新 更多