6

我有一个用户刚刚安装了 4.1(果冻豆),并且 ListView onItemClick() 在我的应用程序中停止工作。该事件不会触发(通过断点和控制台检查),并且 UI 似乎没有明显变化。所以我在模拟器中尝试了(即使它非常慢),并且遇到了同样的问题。

有没有人注意到新操作系统的不同之处?

我的项目布局中没有任何可聚焦的内容,并且在旧操作系统上运行良好。

这是包含 ListView 的布局:

<?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:background="@drawable/Background">

  <ImageView
    android:id="@+id/LiveGameLogo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/SmallLogo"/>

  <ImageButton
    android:id="@+id/BackLiveGameButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent"
    android:src="@drawable/backbutton_button"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="7dp"
    android:layout_marginTop="7dp"/>

  <TextView
    android:id="@+id/LiveGameEditButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/edit_button"
    android:clickable="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_marginRight="7dp"
    android:layout_marginTop="7dp"/>

  <ImageView
     android:id="@+id/LiveGameLayoutBackground"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_alignBottom="@+id/LiveGamePlayerLayout"
     android:layout_alignTop="@+id/LiveGamePlayerLayout"
     android:background="@android:color/white"
     android:layout_marginTop="7dp"
     android:layout_marginBottom="7dp"/>

  <ListView
    android:id="@+id/LiveGamesList"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_below="@+id/LiveGamePlayerLayout"
    android:layout_marginTop="-7dp"
    android:layout_above="@+id/LiveGamesAdPlacement"
    android:background="#FFFFFF"
    android:cacheColorHint="#00000000"/>

  <RelativeLayout
      android:id="@+id/LiveGamePlayerLayout"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_below="@+id/LiveGameLogo"
      android:background="@drawable/LiveGameBanner"
      android:layout_marginTop="10dp">

    <ImageView
      android:id="@+id/LiveGamesPlayerImage"
      android:layout_width="50dp"
      android:layout_height="50dp"
      android:layout_centerVertical="true"
      android:layout_marginLeft="5dp"/>

    <ImageView
      android:id="@+id/LiveGamesPlayerBadge"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentRight="true"
      android:layout_centerVertical="true"
      android:layout_marginRight="5dp"/>

    <LinearLayout
      android:id="@+id/LiveGamesLinearLayout1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerVertical="true"
      android:layout_toRightOf="@+id/LiveGamesPlayerImage"
      android:orientation="vertical"
      android:layout_marginLeft="20dp">

      <TextView
        android:id="@+id/LiveGamesPlayerScoreText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/TotalScoreSemicolon"
        android:textColor="@color/darkbluetext"
        android:textSize="16dp" />

      <TextView
        android:id="@+id/LiveGamesPlayerCoinText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginTop="5dp"
        android:drawableLeft="@drawable/GameCoin"
        android:drawablePadding="5dp"
        android:text="@string/Semicolon"
        android:textColor="@color/cointext"
        android:textSize="16dp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/LinearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/LiveGamesLinearLayout1"
        android:orientation="vertical" >

      <TextView
          android:id="@+id/LiveGamesPlayerLifetimeTotal"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="0"
          android:textColor="@color/bluescore"
          android:textSize="20dp" android:layout_marginBottom="2dp"/>

      <TextView
          android:id="@+id/LiveGamesPlayerCurrentTotal"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginTop="4dp"
          android:text="0"
          android:textColor="@color/cointext"
          android:textSize="20dp" />
    </LinearLayout>

  </RelativeLayout>

  <RelativeLayout
    android:id="@+id/LiveGamesAdPlacement"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</RelativeLayout>

这是项目的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight">
    <ImageView
      android:id="@+id/GamePlayerImage"
      android:layout_height="50dp"
      android:layout_width="50dp"
      android:layout_alignParentLeft="true"
      android:layout_centerVertical="true"
      android:layout_margin="7dp" />
    <ImageView
      android:id="@+id/GamePlayerBadge"
      android:layout_height="wrap_content"
      android:layout_width="wrap_content"
      android:layout_toRightOf="@+id/GamePlayerImage" 
      android:layout_centerVertical="true"
      android:layout_marginLeft="5dp"
      android:layout_marginRight="10dp"/>
    <TextView
      android:id="@+id/GamePlayerName"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_toRightOf="@+id/GamePlayerBadge"
      android:layout_toLeftOf="@+id/GamePlayOpponent"
      android:layout_alignTop="@+id/GamePlayerBadge"
      android:ellipsize="marquee"
      android:singleLine="true"
      android:textStyle="bold"
      android:textColor="@color/darkbluetext"
      android:layout_marginTop="3dp"
      android:textSize="20dp" />
    <TextView
      android:id="@+id/GamePlayerScore"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignRight="@+id/GamePlayerName"
      android:layout_alignLeft="@+id/GamePlayerName"
      android:layout_below="@+id/GamePlayerName"
      android:ellipsize="marquee"
      android:singleLine="true"
      android:textStyle="bold"
      android:textColor="@color/darkbluetext"
      android:textSize="18dp" />
    <ImageView
      android:id="@+id/GamePlayOpponent"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:background="@android:color/transparent"
      android:layout_alignParentRight="true"
      android:layout_centerVertical="true"
      android:layout_marginLeft="5dp"
      android:layout_marginRight="5dp" />
</RelativeLayout>

我的 API 级别是:

  <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="13" />

有任何想法吗?

4

1 回答 1

8

从我的评论中,我发现如果您有 subclassedListView和 overridden onAttachedToWindow,您需要确保该方法调用super.onAttachedToWindow. 我使用的库没有这样做,我看到的行为与您相同。

于 2012-07-21T12:08:32.457 回答