android - Listview与内容高度相同

标签 android android-layout android-listview

我使用了自定义 ListView 。内容来自动态我想要与内容相同的 ListView 高度。

我使用了 wrap_content 但这无济于事如果 我删除 ScrollView 然后它的工作

代码。 “垂直滚动的 ScrollView 不应包含另一个垂直滚动的小部件 (ListView)”

<ScrollView 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:background="@drawable/background_img"
    android:scrollbars="none" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<ListView
            android:id="@+id/lstsemtrack"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
        android:divider="#f2e4e4"
        android:dividerHeight="1dip"
             >
        </ListView>

元素 list

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="10dip"
    android:scrollbars="none" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="4" >

        <TextView
            android:id="@+id/txtBiology"
            style="@style/sem_rowtext"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="5dip"
            android:layout_weight="1"
            android:text="Biology" />

        <TextView
            android:id="@+id/txtClass"
            style="@style/sem_rowtext"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Biology - 101" />

        <TextView
            android:id="@+id/txtGrade"
            style="@style/sem_rowtext"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Grade" />

        <TextView
            android:id="@+id/txtGrade"
            style="@style/sem_rowtext"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Remove" />
    </LinearLayout>

</LinearLayout>

如下所示的输出我想要的内容与没有 ScrollView 的内容相同

enter image description here

最佳答案

使用此代码

public class MyListView  extends ListView {

    public MyListView  (Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyListView  (Context context) {
        super(context);
    }

    public MyListView  (Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}

关于android - Listview与内容高度相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18997729/

相关文章:

java - 如何使用if条件Android更改listview项目背景颜色

java - 如何在 Android 的 ListView 中显示解析后的 html

java - 检测Android上的软导航栏并隐藏导航栏

java - 用于日历 View 的 GridView

android - 在 Android 中测量 "fitCenter"imageView 的边距

android - 如何在默认浏览器或 webview 中打开按钮点击 url

安卓工作室 : Newly Created Directory Not Appearing In Folders View

java - 如何从 RecyclerView 获取触摸反馈?

java - 如何从 URL 编辑 Json key (Android Studio)

java - 如何用正确的参数喂养 appium?