2014-04-08 98 views
0

所以,我有一個頭視圖定義如下:問題與點擊監聽頭在ListView

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="10dp" 
    android:paddingTop="5dp" 
    android:paddingBottom="5dp"> 

    <TextView android:id="@+id/purchase_menu_header_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="#000000" 
     android:textSize="20sp" 
     android:text="@string/purchase_options_label"/> 

</LinearLayout> 

充氣如下:

View header = ((Activity) context).getLayoutInflater().inflate(R.layout.purchase_menu_header, options, false); options.addHeaderView(header);

我對項目的點擊監聽器在選項列表視圖中:

options.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 
       Offer offer = (Offer) options.getItemAtPosition(position); 
       initiatePurchase(offer.getStoreProduct()); 
      } 
     }); 

併爲報頭單擊偵聽器查看本身:

header.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View view) 
      { 
       baseLayout.removeView(background); 
       baseLayout.removeView(overlay); 
      } 
     }); 

我的問題是,標題只註冊點擊文本部分的標題。所需的行爲是讓整個標題可點擊。我嘗試過使用setOnItemClickListener和getItemAtPosition(0)等解決方案,但是這會返回null。還試圖用MATCH_PARENT擴展標題中的文本視圖,但沒有運氣。

+0

您是否嘗試刪除LinearLayout,即讓您的佈局文件只包含TextView?然後,您可以調整TextView的引力和/或填充以獲得您想要的文本。 –

+0

我也會在頭上添加圖片,所以我不認爲這個解決方案會很好。 – Fullplate

回答

0

嘗試使用android:clickable屬性使您的LinearLayout可點擊。

+0

沒有工作:(15char – Fullplate

+0

嘗試使用setClickable(true)以編程方式使標題視圖可點擊 – cybersam

+0

奇怪的是,以編程方式實際工作。對於記錄,備用解決方案是創建一個空白視圖(我使用了ImageView)裏面的''match_parent'的寬度/高度。感謝Cyber​​ Sam! – Fullplate

0

我的問題是,標題只註冊點擊文本 部分的標題。

原因您的標題只是TextViewwrap_content作爲寬度和高度。因此,您正在將clicklistener應用於TextView,且受限制的可點擊區域。

解決方案:

  1. 使用match_parent作爲寬度TextView。或
  2. 使用LinearLayout其中包含TextView作爲標題,並使其可克服。

希望它可以幫助你。

+0

1.確實不工作 – Fullplate

+0

和2.是我已經做的 – Fullplate