Blick.OnTouchListener() funktioniert nicht im übergeordneten layout

Ich habe eine Ansicht.OnTouchListener auf eine übergeordnete layout, aber es scheint nicht zu funktionieren.

Hier ist der XML-Code für die Benutzeroberfläche:

<LinearLayout 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"
    android:baselineAligned="false"
    android:orientation="vertical"
    android:id="@+id/mainActivityLinearLayout"
    android:background="@drawable/listviewborder"
    tools:context=".MainActivity" >

    <View
        android:id="@+id/lineView"
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="@color/gray" />

    <ListView
        android:id="@+id/gameListView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:dividerHeight="2dp" />

</LinearLayout>

Hier ist der OnTouchListener Satz auf das übergeordnete layout:

mainActivityView = this.findViewById(R.id.mainActivityLinearLayout);
mainActivityView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            System.out.println("Touch test activity");
            return true;
        }
    });

onTouch() wird nie aufgerufen und der string "nie drucken".

Nicht, dass ich umgesetzt haben OnItemClick für die ListView-und ich will nur in der Lage sein, zu erkennen, berührt das gesamte layout.

Ich habe auch versucht

gameListView = (ListView) findViewById(R.id.gameListView);
gameListView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            System.out.println("Touch test list");
            return true;
        }
    });

obwohl diese hat nicht funktioniert entweder.

Warum ist das übergeordnete layout nicht immer touch-events? Wie bekomme ich es funktioniert?

  • Ist es Teil des LinearLayout ausgesetzt? Wenn ein ListView-Steuerelement oben auf die Spitze und Griff ist die auf, Ihr LinearLayout nicht.
  • Aus deinem code sehe ich, dass ein layout ist gefüllt mit 2 dp Grau und dann alle listview-Steuerelement, das heißt es ist kein Raum der Eltern-layout, die Sie tatsächlich berühren können. Sie können hinzufügen Polsterung an Ihre Eltern, so dass Sie capture, touch-Ereignisse
  • Ich sehe, ja das listview ist auf der Oberseite des ganze layout. Frage mich nur, wenn es trotzdem so zu machen, dass LinearLayout fangen kann, die auf touch-event, auch wenn es unter ihm.
  • Konnten Sie einen klaren Blick über alles, und Holen Sie sich die klicken Sie auf/Tippen Sie auf die Koordinaten, die.
  • Oder machen Liste.setClickable(false), dann denke ich, dass die Sicht unter bekommen könnte
  • Auch ist es möglich, die auf touch bei der listview? Ich habe versucht, und es hat nicht funktioniert.
  • MazeHatter möchte ich die listview zu werden anklickbar.

Schreibe einen Kommentar