wie zu deaktivieren, Versand-touch-Ereignis in irgendeinem Teil des Bildschirms
Möchte ich deaktivieren, Versand-touch für einige-Gebiet für Ihr Verständnis hier mein Bildschirm.
Können Sie sehen, Header,Footer und Mapview im Bild, aber wenn ich klickte auf die Schaltfläche Speicherort(rechts im header), Meine Karte ist auch immer benannten (wie wurde es berührt) was ich nicht will. Ich möchte, dass nur onClick-Ereignis des button soll angeklickt werden, kein Versand event.
Hier ist mein XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- include title bar for all screen -->
<include
android:id="@+id/include1"
layout="@layout/titlebar_layout"
android:layout_gravity="top" />
<FrameLayout
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.88"
>
<com.google.android.maps.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.63"
android:apiKey="0VkXbAOFvAq7b6uaGHSmnS2a2VosPxoS6ceHY_g"
android:clickable="true" >
</com.google.android.maps.MapView>
</FrameLayout>
<include
android:id="@+id/include2"
android:layout_gravity="bottom"
android:layout_marginBottom="38dp"
layout="@layout/bottom_layout" />
</LinearLayout>
Jede Hilfe wird sehr geschätzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie überschreiben die
dispatchTouchEvent
, und schauen, wo sich der Benutzer berührt den Bildschirm..Der Grund, warum MapView ist der Erhalt der
dispatchTouchEvent()
Veranstaltungen ist, dass Android startet dispacthing die die Ereignisse für die zuletzt hinzugefügte anzeigen, und wenn es nicht behandelt wird es, dann ist es entsandt, um den letzten Blick vor dem Hinzugefügt, dass man, und so weiter ...In der Sie xml-layout, fügen Sie zuerst Header, dann MapView und für die Letzte Fußzeile. Also in deinem Fall, das die Veranstaltungen werden zuerst ausgelöst und Fußzeile, dann auf die Kartenansicht, und für die letzten in die Kopfzeile.
Müssen Sie option, um dieses Problem zu lösen:
Glück.
getLocationOnScreen()
Sie erhalten die Y-Koordinate der Schaltfläche oben. Bei Klick auf die Schaltfläche, wird der Benutzer beim Klick auf den Bereich zwischen der Oberseite der Taste und-Taste. Finden Sie den botton y-Koordinate hinzufügen der Schaltfläche Höhe.Relative layout mit Kartenansicht am unteren Rand und Taste geklickt oben.. und hinzufügen von click-Ereignis für die Schaltfläche
anzeigen verwenden.bringToFront (), um die Ansicht oben genannten Orte andere Ansichten.