在API< 11中,列表项中的android:layout_height =“match_parent”被忽略

时间:2013-08-16 08:02:42

标签: android android-listview

我有一个简单的ListView显示一些内容。有真实的内容视图@+id/conetnt和视图@+id/service_disabled只是为了显示一些花哨的背景,以防项目被禁用。 应在内容之上绘制禁用视图的背景。这就是没有为内容视图使用背景状态选择器的原因。

内容视图的高度因项目而异。我基本上希望禁用的视图高度与内容视图的高度相同。

但无论我尝试什么,在API< 11上,禁用的视图高度match_parent都会被忽略。 禁用的视图只有很小的高度。 在API> = 11,一切都很好。

我的列表项布局:

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

    <LinearLayout android:id="@+id/content"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:gravity="center_vertical"
                  android:orientation="horizontal"
                  android:padding="@dimen/service_item_padding">

        <!-- views... -->
    </LinearLayout>

    <View android:id="@+id/service_disabled"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="@drawable/bg_disabled_service_repeat"/>

</FrameLayout>

如何在API&lt; 11上解决此问题?

Btw:minSdk = 8,targetSdk = 18

在运行两个android-17的N4和tf101上工作正常。 它在运行android-10的HTC G2上坏了。

2 个答案:

答案 0 :(得分:0)

想一想:ListView项目的父级是什么,它的高度是多少?使列表视图项等于其父高将使整个列表视图无效。

您可能希望列表行布局的高度为wrap_content

答案 1 :(得分:-1)

您是否专门为旧版API编译?您测试了哪些API版本?

它可以像不正确的命名一样简单。 MATCH_PARENT是API 8及更高版本上使用的名称,但如果您正在使用API​​ 7或更早版本(Android 2.1 Eclair或更早版本),则应使用常量FILL_PARENT。