我有一个RelativeLayout活动包含一个列表视图。我想基于其项目制作列表视图高度,我在互联网上搜索并发现许多方法都这样做,但所有方法都使列表视图高度大于项目高度。 我使用的方法如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/title"
android:text="New Recipe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"/>
<EditText
android:id="@+id/recipeName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:hint="Enter Recipe Name"/>
<ListView
android:id="@+id/ingredientsList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/recipeName"
android:textColor="#000000"
android:layout_above="@+id/showIngredientDialog"
android:minHeight="150px">
</ListView>
<Button
android:id="@+id/showIngredientDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add Ingredient"
android:layout_above="@+id/showDirectionDialog"
android:layout_alignParentStart="true"
android:layout_marginBottom="145dp" />
<ListView
android:id="@+id/directionsList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:layout_above="@+id/showDirectionDialog"
android:layout_alignParentStart="true"
android:layout_marginBottom="37dp">
</ListView>
<Button
android:id="@+id/showDirectionDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add Direction"
android:layout_marginBottom="79dp"
android:layout_alignParentBottom="true"
android:layout_alignEnd="@+id/showIngredientDialog" />
<Spinner
android:id="@+id/timeSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/showDirectionDialog"
android:entries="@array/time"/>
<Spinner
android:id="@+id/dietarySpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/dietary"
android:layout_below="@+id/showDirectionDialog"
android:layout_toRightOf="@+id/timeSpinner" />
<Spinner
android:id="@+id/heatSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/heat"
android:layout_below="@+id/showDirectionDialog"
android:layout_toRightOf="@+id/dietarySpinner" />
<Button
android:id="@+id/saveRecipe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save Recipe"
android:layout_below="@+id/timeSpinner"
android:layout_alignParentBottom="true"
android:layout_alignEnd="@+id/showDirectionDialog"
android:layout_marginBottom="25dp" />
</RelativeLayout>
</ScrollView>
</RelativeLayout>
当我调试方法时如果发现某些项高度等于“45”且某些项高度等于“66”,而列表视图中的所有项目在活动出现时具有相同的高度。
以下是活动的快照,列表视图背景为浅灰色,以显示列表视图高度: Activity snpapshot
答案 0 :(得分:0)
如果您希望整个列表可见,请不要使用列表视图 列表视图不是为此而制作的,它是为了填充屏幕并重用它的视图
使用带有线性的滚动视图并在里面充气,但这是一个糟糕的方法,需要很长时间 所以请重新审视你这样做的原因也许你会找到一个更好的Widget或者可能分享你想要实现的UI的截图