1

我有一个奇怪的问题。我的 Android 应用程序适用于我的手机(Android 版本 2.3.5,API 9),我的一些模拟器(Android 版本 >= 2.2,API >= 8,在 API 8、13、15 上测试)而不是我的其他模拟器(Android 版本 < 2.2,API < 8,在 API 4、7 上测试)。该应用程序不会在 API < 8 的模拟器上崩溃,但我的一些自定义 ImageViews 在屏幕上消失了。否则一切正常。

我已经使用最新版本的工具lint来确定我是否使用了 API < 8 不支持的任何方法,但我唯一确定的是我使用了一种需要 API 4 的方法,在设置 android 时没有关于 API 的错误消息:minSdkVersion=4, android:targetSdkVersion=4 并将目标构建为 4。

我也看过这里,因为错误似乎发生在 API 7 和 8 之间的某个地方,但找不到任何东西。我还对照开发人员文档检查了自定义 ImageView 中的所有方法,以查看是否有任何方法需要 API > 7。

有没有人对问题可能有任何其他建议?

编辑:

这是我的主要 xml 文件:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical"
  android:id="@+id/gameLayoutID"
  >  

<fragment
    android:id="@+id/groundMenuID"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    class="com.foo.bar.someClass"/>

<fragment
    android:id="@+id/topLeftMenuID"
    android:layout_width="@dimen/TopLeftRightMenu_width"
    android:layout_height="@dimen/TopMenu_height"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    class="com.foo.bar.someClass"/>

<fragment
    android:id="@+id/topRightMenuID"
    android:layout_width="@dimen/TopLeftRightMenu_width"
    android:layout_height="@dimen/TopMenu_height"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    class="com.foo.bar.someClass"/>

<fragment
    android:id="@+id/leftMenuID"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_above="@id/groundMenuID"
    android:layout_below="@id/topLeftMenuID"
    class="com.foo.bar.someClass"/>

<fragment
    android:id="@+id/rightMenuID"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentRight="true"
    android:layout_above="@id/groundMenuID"
    android:layout_below="@id/topRightMenuID"
    class="com.foo.bar.someClass"/> 

<fragment
    android:id="@+id/topMenuID"
    android:layout_width="fill_parent"
    android:layout_height="@dimen/TopMenu_height"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@id/topLeftMenuID"
    android:layout_toLeftOf="@id/topRightMenuID"
    class="com.foo.bar.someClass"/>

<com.foo.bar.CustomImageViewLayout
    android:id="@+id/wheelMenuID"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"   
    android:layout_toRightOf="@id/leftMenuID"
    android:layout_toLeftOf="@id/rightMenuID"
    android:layout_below="@id/topMenuID"
    android:layout_above="@id/groundMenuID"/> 

<fragment
    android:id="@+id/figurePassageID"
    android:layout_width="fill_parent"
    android:layout_height="@dimen/figurePassage_height"
    android:layout_above="@id/groundMenuID"
    class="com.foo.bar.someClass"/>


</RelativeLayout>

Fragment 通过标准 Fragment 类的 onCreateView 方法进行膨胀,无论使用何种 API,它们都可以正常工作。至于自定义的 ImageView 类......它有很多代码,我不确定我是否想将它粘贴到开放中(这有点像我的主要知识产权)。我很确定错误不存在,但我会再次验证它。如果没有,我会尝试粘贴一些代码。

4

1 回答 1

0

尝试更改您对match_parentto的所有用法fill_parent

于 2012-04-10T16:06:41.887 回答