2013-09-25 73 views
1

這就是我的NavigationDrawer列表項目的定義。Android 2.3中的NavigationDrawer選擇問題

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    style="?android:attr/spinnerDropDownItemStyle" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:padding="15dp"> 

    <ImageView 
     android:id="@+id/drawer_list_item_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:adjustViewBounds="true" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:gravity="center_vertical|left" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/drawer_list_item_title" 
      style="?android:attr/spinnerDropDownItemStyle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ellipsize="end" 
      android:textColor="#00FFFF" 
      android:singleLine="true" /> 

     <TextView 
      android:id="@+id/drawer_list_item_subtitle" 
      style="?android:attr/spinnerDropDownItemStyle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ellipsize="end" 
      android:singleLine="true" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 
    </LinearLayout> 

</LinearLayout> 

我使用ActionBarSherlock庫SherlockNavigationDrawer一起。

一切都在我的Android 4.3設備完美的工作。

但在我的2.3.3設備中,我遇到了一個奇怪的問題。

這就是初始的NavigationDrawer的外觀。

enter image description here

問題場景:我按住任何的listItem然後將我的手指(同時仍按住)向上或向下走向另一個的listItem。

這就是發生這種情況的原因。

enter image description here

所有listItems中得到突出顯示在白色,它仍然像像之前,除非其他的listItem點擊以正常的方式(即使我關閉並重新打開NavDrawer,還是整個列表仍以白色突出顯示)。

雖然這不會發生在Android 4.3中。

它只發生在Android 2.3.3(可能發生在所有的ICS前設備上)。

兼容庫是否存在問題?

這是我在values-v11文件夾中唯一的附加代碼,因爲「activatedBackgroundIndicator」在Android 2.3中不可用。

<resources> 
    <style name="listViewActivatedStyle"> 
     <item name="android:background">?android:attr/activatedBackgroundIndicator</item> 
    </style> 
</resources> 

Android 2.3無法訪問上述代碼。這是它給這個問題的原因嗎?或者兼容庫中存在錯誤?

任何建議將深受讚賞。

+0

你有沒有找到一個解決辦法,因爲我已經與我的導航抽屜得到了同樣的問題? 'cacheColorHint'不適合我 – Ektos974

+0

嗯,它已經爲我工作。你可以給一個鏡頭'android:cacheColorHint =「@ null」 android:listSelector =「@ android:color/transparent」'並且看看你得到了什麼。 – Swayam

+0

我已經試過'android:cacheColorHint =「@ null」' 我不能使用android:listSelector =「@ android:color/transparent」因爲我已經在使用這個'android:listSelector =「@ drawable/menu_selector「' – Ektos974

回答

5

嘗試

android:cacheColorHint="@null" 

添加到列表中

+0

哇!大!沒有更多的醜陋白色在整個名單!謝謝!但是,有一個小問題。當單擊listItem時,listItem的外觀沒有變化。我的意思是,用戶無法真正知道哪個被點擊。任何方式來解決這個問題? – Swayam

+0

修正了它!只添加'android:cacheColorHint =「@ null」'讓點擊動畫保持。非常感謝你的幫助。我一直認爲這是關於兼容性庫的事。再次感謝! :) – Swayam