Frage

Ich habe eine Notwendigkeit, eine Kontrolle wie UITabBar in iPhone zu schaffen, die auf jeder Aktivität meiner Anwendung vorhanden sein soll. UITabBar im Wesentlichen eine Batterie von Tasten ausstellenden ein TAB Verhalten. Jede Taste Karten auf eine Aktivität

Ich habe zwei Lösungen:

  1. In dem Layout-XML für jede Aktivität, füge ich ein <LinearLayout><Button/><Button/><Button/></LinearLayout> Element. Und dann hat eine gemeinsame Listener-Klasse, die auf die Schaltfläche klickt behandelt. So wird jede Aktivität eine Instanz dieses Zuhörer haben.

  2. So erstellen Sie eine benutzerdefinierte Widget Linearlayout-Klasse erweitern, setzen alle Tasten als statische Elemente und lassen Sie es auf die Schaltfläche klickt behandeln. Fügen Sie diese benutzerdefinierte Steuerelement in jedem Bildschirm.

Ich bin sicher nicht der Ansatz zu folgen. Bitte Beratung. Alternativen auch geschätzt

Es folgt, was ich denke über oben Ansätze:
Das Problem mit dem ersten Ansatz:

  1. Es wird eine Menge Standardcode (findViewByIds, setOnClickListener etc.)

  2. erzeugen
  3. Unter der Annahme, dass es 5 Aktivitäten und 3 Registerkarte Tasten, die Gesamtzahl der Taste zur Laufzeit erstellen Objekte werden 5 x 3 = 15

Ich möchte den zweiten Ansatz nehmen, weil:

  1. Die gesamte Code (Zustand und Verhalten) werden von der Widget-Klasse verkapselt werden. Weniger Standardcode.

  2. Da die Tasten statische Elemente sein, die Gesamtzahl der Taste zur Laufzeit erstellen Objekte werden nur drei sein. Obwohl die statischen Elemente für eine längere Zeit in Erinnerung bleiben werden (bis JVM die Klasse leert), da die Steuerung auf jedem Bildschirm vorhanden ist, ich denke, das entschuldigt werden kann.

Danke.

War es hilfreich?

Lösung 2

Leider konnte ich nicht einen Weg finden, die sich im internen TabWidget anpassen, um es wie UITabBar aussehen. Also, ich werde ein benutzerdefiniertes Steuerelement erstellen und die Tasten haben als statische Elemente (den zweiten Ansatz). Die Steuerung wird den Klicks behandeln wie erwartet.
Ich habe bemerkt, dass die Auszeichnung Plink Art Anwendung gewinnt auch eine Registerkarte Kontrolle hat, die auf iPhones UITabBar ähnlich ist.

Andere Tipps

Warum nicht einfach die bestehende TabWidget Implementierung in Android verwenden?

http://developer.android.com/guide/tutorials /views/hello-tabwidget.html

Es ist nicht nur Ihre eigenes Widget zusätzliche Arbeit der Umsetzung, ist es wahrscheinlich am Platz fühlen, wenn im Vergleich zu anderen Anwendungen auf der Plattform.

Insbesondere hier einige Probleme, die ich sehe:

  1. Wenn das Aussehen der Tab-Leiste Änderungen aufgrund einer Systemaktualisierung, werden Sie müssen den Code neu schreiben. Sie sind auch unwahrscheinlich, dass genau das Aussehen entsprechen und das Gefühl der in Tab-Leiste gebaut. (Denken Sie Java auf OS X).

  2. Jedes Mal, wenn ein Benutzer klickt auf eine Registerkarte, wird es eine andere Aktivität auf dem Stapel hinzufügen. Dies ist nicht nur eine Verschwendung von Speichern, aber jedes Mal, wenn der Benutzer klickt auf die Zurück-Taste am Telefon, es wird zur vorherige Registerkarte gehen. Dies ist nicht die Art und Weise der Tab-Leiste auf Arbeit soll.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top