Нажатие ChildView ведет себя так, как если бы щелкнули ParentView

Я обнаружил странное поведение на Android. Допустим, у меня есть представление списка, и каждая строка представляет собой линейный макет, содержащий текстовое представление. Я установил longClickListener в listView. Кроме того, я установил onTouchEvent в textView. Поведение, которое я хочу, заключается в том, что если пользователь нажмет textView в списке, должен быть запущен onTouchEvent. Если пользователь долго нажимает за пределами textView, он должен выполнять то, что определено в longClickListener. Однако в Android 4.2.1 такое поведение не работает. Я обнаружил, что Google изменил код, так что ChildView разделяет состояние нажатия с его родительским представлением в Jelly Bean. Это правильно? Если это так, как я могу реализовать то, что хочу?

Другими словами, я хочу, чтобы childView и parentView вели себя независимо!!

Любой ответ будет оценен!

Ниже мой CustomTextView.java

public class CustomTextView extends TextView {

    public CustomTextView(Context context) {
        super(context);
        setPressed(false);
    }

    public CustomTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        setPressed(false);
    }

    public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setPressed(false);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        Intent.... something
        Start a new activity... pretty straightforward

        return super.onTouchEvent(event);
    }
}

Ниже текстовое представление моего list_item.xml

<com.keek.widget.CustomTextView
    android:id="@+id/caption"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/thumbnail_overlay"
    android:lineSpacingExtra="1dp"
    android:textColor="@android:color/black"
    android:textSize="@dimen/text_11"
    android:duplicateParentState="false"
    android:longClickable="false"
    android:textColorLink="@color/linkify_blue" />

Мой список довольно прост. Это обычный listView с onLongClickListener, который открывает диалоговое окно.

Дело в том, что когда я нажимаю textView, диалоговое окно и новое действие открываются одновременно. Что я хочу, так это то, что когда я нажимаю textView, он должен открывать новое действие, а не диалоговое окно.


person user2062024    schedule 18.04.2013    source источник
comment
Можете ли вы опубликовать свой код?   -  person Catherine    schedule 19.04.2013
comment
размещено ... это довольно прямолинейно   -  person user2062024    schedule 19.04.2013
comment
Я как бы задал общий вопрос. Действительно ли Google изменил способ поведения дочернего представления в зависимости от родительского представления? Я обнаружил похожую проблему, но не смог найти обходной путь. stackoverflow.com/questions/14179431/   -  person user2062024    schedule 19.04.2013