2014-11-22 93 views
1

我爲我的列表視圖寫了一個自定義適配器。現在它包含不同類型的項目(比如標題和文本)。ListView - 使用自定義適配器的ClickListener刪除項目觸摸高亮

標題不需要附加動作,因此我不想在點擊時看到物品觸摸突出顯示。但是,文本可能會針對每個文本執行不同的操作。這是我的自定義適配器的代碼。你可以看到,設置一個空白點擊監聽器禁用列表的項目點擊動畫,所以我很好。但是,當設置一個空的點擊監聽器時,它也會刪除這個動畫(實際上調用setOnClickListener刪除動畫)。

如果它可以幫助這裏是我的列表視圖中的xml:

<ListView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/some_id" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:layout_marginTop="10dp" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:cacheColorHint="@android:color/transparent" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="0dp"/> 

我怎樣才能讓我的列表視圖的默認項目點擊動畫,這不是我的轉接器內標題項目?

回答

0

您應該使用OnItemClickListener而不是每個列表項上的onclick監聽器。要在「標題」類型項上禁用onClick效果,可以在適配器類中使用isEnabled方法。

@Override 
public boolean isEnabled(int position) { 
    // TODO Auto-generated method stub 
    return super.isEnabled(position); 
} 
+1

是的,現在我不需要爲標題設置一個空白點擊監聽器,所以這似乎不那麼黑客。然而,由於每個文本都有一個特定的偵聽器,我想將邏輯保存在適配器中而不是將其移動到我的片段類中。你不知道爲什麼設置點擊監聽器禁用這個動畫嗎?有沒有什麼辦法直接在我的物品上設置點擊監聽器? – user2336315 2014-11-22 16:23:03

相關問題