2013-05-19 11 views

Antwort

0

Sie können sehen, wie diese Funktion in ShowcaseView Bibliothek implementiert wird.

+0

genial und sehr native Bibliothek! –

+5

Das ist sehr schlechte Antwort, Sie zeigen nicht einmal einen bestimmten Ort in der Bibliothek. – Hurda

+0

Sie verwenden Reflektion, um zu den privaten Feldern zu gelangen. Das ist nicht gut. Ich werde es nicht benutzen. –

1

Gegenwärtig gibt es keine dokumentierten und unterstützten Mittel, außer für Ihre eigenen benutzerdefinierten Aktionslayouts oder Aktionsansichten. Es gibt keine API, um gewöhnliche Inhalte der Aktionsleiste abzurufen (Home Affordance, Titel, normale Artikel).

ShowcaseView, wie in der anderen Antwort erwähnt, macht wahrscheinlich einige undokumentierte/nicht unterstützte Dinge für diese, wie zum Beispiel durch die View Hierarchie, um an diese Widgets zu bekommen. Das ist insofern riskant, als zukünftige Versionen von Android oder Hersteller-/ROM-Modder-Änderungen an Android diese Logik durchbrechen könnten.

+0

Gibt es noch immer keine Möglichkeit, die Koordinaten von Aktionsleistenmenüpunkten herauszufinden? – penduDev

+0

@penduDev: Nichts dokumentiert und unterstützt, zuletzt habe ich überprüft. – CommonsWare

+0

Ich habe eine Antwort hinzugefügt ... funktioniert für mich – penduDev

4

Hier ist, wie ich es tat:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if(item.getItemId().equals(R.id.my_menu_item)) { 
     View menuView = findViewById(R.id.menu_item_search); 
     int[] location = new int[2]; 
     view.getLocationOnScreen(location); 
     int locationX = location[0]; 
     int locationY = location[1]; 
    } 
} 
+1

Dies beruht auf dem Widget mit einer bestimmten ID. Dies kann in Fällen der Fall sein, in denen Sie den Inhalt Ihrer benutzerdefinierten Aktionsleiste erstellen. Dies gilt nicht für alle Situationen, insbesondere wenn Sie Dinge aus dem Android-SDK verwenden, z. B. 'SearchView' oder' ShareActionProvider', wobei Widget-IDs, soweit vorhanden, interne Implementierungsdetails sind und Änderungen unterliegen können. – CommonsWare

+1

Dies hängt auch davon ab, dass der Benutzer auf eine Schaltfläche in der Aktionsleiste klickt, was bei dem, was die Person hier fragt, nicht funktioniert. – Rob

Verwandte Themen