Android-线性布局权重在listview项中无法正常工作

Android-线性布局权重在listview项中无法正常工作,android,android-layout,listview,Android,Android Layout,Listview,在Android Studio中看起来不错,但在我的手机上执行时不起作用。 我使用的是一个简单的线性布局(水平),里面有两个线性布局(垂直)容器,每个容器应该占据listview行的50%空间。代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="h

在Android Studio中看起来不错,但在我的手机上执行时不起作用。
我使用的是一个简单的线性布局(水平),里面有两个线性布局(垂直)容器,每个容器应该占据listview行的50%空间。代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:weightSum="1">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="0.5">

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="001"
                android:id="@+id/pokemonNumber"
                android:layout_marginLeft="5dp" />

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Bulbasaur"
                android:id="@+id/pokemonName"
                android:layout_marginLeft="10dp" />

        </LinearLayout>

        <LinearLayout
            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:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Grass"
                android:id="@+id/pokemonTypes"
                android:layout_marginLeft="50dp" />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="0.5">

        <ImageView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/pokemonImage"
            android:src="#ff65ff4f" />

    </LinearLayout>

</LinearLayout>
EDIT4:listview的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/pokeList" />
</LinearLayout>

尝试更换:

view = mInflater.inflate(resID, parent, false);

第一个命令是“使用我的父级来确定我的布局参数”,第二个命令是“使用我的布局资源的布局参数设置”。

尝试替换:

view = mInflater.inflate(resID, parent, false);


第一个选项是“使用我的父项来计算我的布局参数”,第二个选项是“使用我的布局资源的布局参数设置”。

问题在于,ListView在wrap_内容上具有宽度,这不允许LinearLayout使用其权重属性。因此,解决方案如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/pokeList" />
</LinearLayout>


我也在这里的一个问题中读到(不幸的是,找不到链接)将ListView包装内容作为高度是不好的,总是尽量具体,与匹配父项或使用其他约束一样,在添加任何子项之前,它会知道它的高度。

问题在于,列表视图在包裹内容上有它的宽度,这不允许LinearLayout使用它的权重属性。因此,解决方案如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/pokeList" />
</LinearLayout>


我也在这里的一个问题中读到(不幸的是,找不到链接)将ListView包装内容作为高度是不好的,总是尽量具体,如匹配父项或使用其他约束,以便在添加任何子项之前知道其高度。

显示实际使用此布局的代码-这就是问题所在。当然,在编辑中添加。感谢您的帮助。请使用“匹配父项”或“填充父项”使列表视图填充父项。我认为包装内容只会使它的文本视图需要它和重量一样大,没有被使用。成功!谢谢你,我应该意识到,我犯了一个愚蠢的错误。如果你将你的解决方案作为答案发布,我将代表并接受答案。谢谢显示实际使用此布局的代码-这就是问题所在。当然,在编辑中添加。感谢您的帮助。请使用“匹配父项”或“填充父项”使列表视图填充父项。我认为包装内容只会使它的文本视图需要它和重量一样大,没有被使用。成功!谢谢你,我应该意识到,我犯了一个愚蠢的错误。如果你将你的解决方案作为答案发布,我将代表并接受答案。谢谢使用“null”而不是“parent”时没有变化-有其他想法吗?嗯-ListView的布局是什么样子的?使用“null”而不是“parent”时没有变化-有其他想法吗?嗯-ListView的布局是什么样子的?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/pokeList" />
</LinearLayout>