使用ListVIew中的自定义TextView进行LongClick无法正常工作

时间:2015-03-22 06:47:39

标签: android android-layout listview onclick android-custom-view

我有一个ListView,它有一个我从here: FlowTextView

获得的自定义TextView

问题是如果我使用普通的默认TextView一切都很好,但是如果我使用这个自定义文本视图,如果在文本视图中单击,则所有Click事件(LongClick和OnClick)都不起作用,即click事件仅适用于此自定义TextView无法到达的位置(我的列表行的边缘)。

我试过了

  • 机器人:descendantFocusability =" blocksDescendants"

  • 机器人:可聚焦="假"

  • 机器人:focusableInTouchMode ="真"

但它没有奏效,或者我做错了......如果您认为这些方法中的任何一种都有效,请详细说明如何使用

我在FlowTextView中的实现

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:background="#ff71ff34">


<uk.co.deanwild.flowtextview.FlowTextView

    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/textView2"

    android:text="Description"


    android:textSize="24sp"
    android:background="#1b1b1f"

    android:textColor="@android:color/white">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="#ffffbb52"/>

</uk.co.deanwild.flowtextview.FlowTextView>

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:text="CodeLearn 1"
    android:background="#1b1b1f"
    android:textColor="@android:color/white"/></RelativeLayout>
在OnCreate中

ListView mainList = (ListView)findViewById(R.id.listView1);
    new Connect(mainList,this).execute(aa);
    mainList.setClickable(true);
    mainList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener()
    {

        public boolean onItemLongClick(AdapterView <?> arg0, View arg1,
                                       int pos, long id) {
            // TODO Auto-generated method stub
            //  Toast.makeText(this, "Wrong Username/Password! TRY AGAIN!", Toast.LENGTH_LONG).show();
            Log.d("long clicked","pos: " + pos);

            return true;
        }
    });

activity_main.xml,其中包含根列表视图

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android"></ListView>

1 个答案:

答案 0 :(得分:1)

正如@Vikram在评论中所说的

  

检查FlowTextView.java的第88行:链接。那应该回答你的问题   问题

所以基本上解决方案是将该对象的setOnTouchListener设为null

setOnTouchListener(null)