Android列表查看在用户滚动之前未显示的所选项目样式

时间:2012-02-01 00:50:11

标签: android listview android-layout android-3.0-honeycomb android-4.0-ice-cream-sandwich

我目前正在开发Android平板电脑应用程序,它有两个片段,一个列表片段和一个细节片段。

我正在尝试使我的列表类似于人物和电子邮件,其中当选择项目背景更改并且三角形位于列表的右侧时。

我目前在设置列表中所选项目的背景时遇到了困难。 正如我在列表视图中所理解的那样,我应该将android:listSelector设置为drawable,并且所有都应该工作。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:paddingLeft="8dp"
>

     <ListView android:id="@id/android:list"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"               
               android:layout_weight="1"  
                android:listSelector="@drawable/selected_background"   
              />


     <TextView android:id="@id/android:empty"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:text="No data. Please check your internet connection." android:gravity="center"/>
 </LinearLayout>


<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="@color/hukd_orange_faded" />
</shape>

当我这样做时,在我开始滚动列表之前,彩色项目的背景不会改变。不仅如此,背景也会闪烁,并且经常会回到标准的背景色。

我已经在网上查看了Holo.light似乎存在问题,如Android list selector gets stuck when using Theme.Light所示 我尝试了两种状态,但问题仍然存在。

2 个答案:

答案 0 :(得分:3)

我终于设法解决了这个问题。

所需要的只是以下两行

listView = getListView();
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

它现在的工作方式类似于ICS中的邮件和人员。

答案 1 :(得分:0)