2013-08-22 63 views
0

我有一個列表視圖與自定義項目,列表視圖中的項目包括:文本視圖和圖像按鈕,我有一個選擇器設置圖像按鈕的背景。我的問題是,當我點擊列表視圖中的項目,圖像按鈕更改狀態按(單擊事件不觸發),我不想這樣,我想要按下圖像按鈕更改狀態只按當我按下它。任何解決方案嗎?謝謝!項目排圖像按鈕更改爲按狀態時,在列表視圖中單擊項目android

佈局

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="5dp" 
     android:background="@drawable/song_list_selector" > 

     <ToggleButton 
      android:layout_width="wrap_content" 
      android:layout_height="20dp" 
      android:layout_alignParentLeft="true" 
      android:background="@android:color/transparent" 
      android:checked="true" 
      android:textSize="12sp" 
      android:textOn="@string/favorite" 
      android:textOff="@string/favorite" 
      android:textColor="@drawable/text_color_toggle_button" 
      android:id="@+id/toggle_favorite" 
      android:clickable="false" 
      android:focusable="false"/> 

     <ToggleButton 
      android:layout_width="wrap_content" 
      android:layout_height="20dp" 
      android:layout_alignParentRight="true" 
      android:background="@android:color/transparent" 
      android:checked="false" 
      android:textSize="12sp" 
      android:textColor="@drawable/text_color_toggle_button" 
      android:textOn="@string/offline" 
      android:textOff="@string/online" 
      android:id="@+id/toggle_offline" 
      android:clickable="false" 
      android:focusable="false"/> 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_menu" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:padding="10dp" 
      android:background="@drawable/bg_button_song_menu" 
      android:contentDescription="@string/song_menu" 
      android:id="@+id/btn_song_menu" 
      android:focusable="false"/> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:layout_below="@id/toggle_favorite" 
      android:layout_toLeftOf="@id/btn_song_menu" 
      android:text="999 Doa Hong" 
      android:textColor="#0e7491" 
      android:textSize="20sp" 
      android:id="@+id/lbl_song_name"/> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:text="Nhac chi chuyen xua, da xa roi nhu giac mo..." 
      android:textSize="12sp" 
      android:layout_below="@id/lbl_song_name" 
      android:layout_toLeftOf="@id/btn_song_menu" 
      android:id="@+id/lbl_song_lyric"/> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:drawableLeft="@drawable/ic_microphone" 
      android:drawablePadding="2dp" 
      android:textSize="12sp" 
      android:text="1,478" 
      android:layout_marginTop="5dp" 
      android:layout_below="@id/lbl_song_lyric" 
      android:id="@+id/lbl_sing_times"/> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:drawableLeft="@drawable/ic_save" 
      android:drawablePadding="2dp" 
      android:textSize="12sp" 
      android:text="548" 
      android:layout_marginTop="5dp" 
      android:layout_below="@id/lbl_song_lyric" 
      android:id="@+id/lbl_save_times"/> 

    </RelativeLayout> 

</RelativeLayout> 

列表視圖

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".SongListActivity" > 

    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingTop="3dp" 
     android:paddingBottom="3dp" 
     android:paddingLeft="0dp" 
     android:paddingRight="0dp" 
     android:divider="@null" 
     android:listSelector="#00000000" 
     android:cacheColorHint="#00000000" 
     android:id="@+id/list_song"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="12sp" 
     android:textStyle="italic" 
     android:id="@+id/lbl_no_song" 
     android:layout_centerInParent="true" 
     android:visibility="gone" 
     android:textColor="#b6b6b6"/> 

</RelativeLayout> 
+0

會幫助我們看到一些代碼......否則很難幫助你。 – kwishnu

+0

我已經添加列表項xml –

+0

@DuHuynh你能爲listview顯示佈局嗎? – Chansuk

回答

0

作爲默認,ListView控件的佈局消耗掉所有的觸摸事件,只是傳播複製的狀態,它的孩子。爲了避免這種情況,您應該在ListView中將可聚焦屬性設置爲'false'。

<ListView 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
/> 
+0

我有嘗試,但沒有解決我的問題,任何建議 –

0

這是由於ImageButton在listitem佈局中的可聚焦性。

將以下行添加到您的ListView的項目佈局的根佈局。

android:descendantFocusability="blocksDescendants" 
+0

我有嘗試,但沒有解決我的問題 –

相關問題