ListView中标题的单击侦听器出现问题

时间:2014-04-08 03:20:55

标签: android android-layout android-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);

我在ListView选项中有项目的点击监听器:

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扩展标题中的文本视图,但没有运气。

2 个答案:

答案 0 :(得分:0)

尝试使用android:clickable属性点击您的LinearLayout。

答案 1 :(得分:0)

  

我的问题是标题只记录文本的点击次数   标题的一部分。

因为您的标题只是TextViewwrap_content为宽度和高度。因此,您正在clicklistenerTextView应用于受限制的可点击区域。

  

解决方案:

  1. 使用match_parent作为TextView的宽度。或
  2. 使用其中包含LinearLayout的{​​{1}}作为标题,并使其成为可嵌入的。
  3. 希望它对你有所帮助。