列表视图不能在Android 4.0.3(API 15)上显示但在4.1.2(API 16)上正常工作的可能原因?

时间:2014-09-26 18:45:35

标签: android

我的任务是确定为什么一个5年前的应用程序(由几个团队工作)通过API 19支持API 8只有API 15的这个特殊问题。

问题是应用程序没有在其中显示任何数据2的ListViews。

一些细节:

  1. logcat中没有报告错误。我在API 15和API 16模拟器上运行应用程序,它们的日志看起来几乎相同。

  2. 调用listview.getAdapter()。getCount()会返回大于0的预期值。

  3. (UPDATE) 3.未调用listview.getItem()和listview.getView()。

    1. listview.getVisibility()确实返回View.VISIBLE

    2. 奇怪的是,退出应用程序并重新启动它,允许显示数据(!)

    3. 我已经搜索了几天关于API 16工作正常的原因,例如"修复了什么"在15到16之间,但没有任何有意义的东西出现。我一直害羞地问这里因为这让我听起来很疯狂:-) 我希望有人在4.0.3中遇到过这个问题,可以给我下一个解决这个问题的途径。发布代码将非常困难,但任何合理的请求都将得到愉快的遵守。谢谢!

1 个答案:

答案 0 :(得分:2)

没有人会相信我;-),但解决方法是删除:

android:animateLayoutChanges="true"

...来自应用程序主要布局文件中的LinearLayout(其中包含一个支持ViewPager,其根目录是TabHost,而不是那些必然重要)。

我自己也无法相信,所以我更换并删除了几次,它会在“打破”和“工作”之间交替。

我不知道为什么会这样,但我在这里列出了.xml文件

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/aim_light_grey" >

    <!-- android:animateLayoutChanges below was the problem!!! -->

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:baselineAligned="false"   
        android:animateLayoutChanges="true"
        android:orientation="vertical">

        <LinearLayout
            android:id="@+id/no_network_indicator"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center" >

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/warn_gray" />

            <TextView
                android:id="@+id/tv_not_connected"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:background="@color/light_grey"
                android:paddingBottom="3dp"
                android:paddingTop="3dp"
                android:text="@string/not_connected"
                android:textSize="14sp" />
        </LinearLayout>

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="44dip"
            android:layout_weight="0"
            android:background="@color/blue"
            android:visibility="gone" >

            <ImageView
                android:id="@+id/logo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:contentDescription="@string/image_logo_accessibility_description"
                android:src="@drawable/action_1" />

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true" />
        </RelativeLayout>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1" >

            <android.support.v4.view.ViewPager
                android:id="@+id/viewpager"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" />
        </FrameLayout>
    </LinearLayout>
</TabHost>