Domanda

Ho la necessità di creare un controllo analogo a UITabBar in iPhone, che è quello di essere presente su ogni attività della mia candidatura. UITabBar essenzialmente è un batteria di pulsanti che mostra una come comportamento:. Ogni mappe dei pulsanti a un'attività

Ho due soluzioni per questo:

  1. Nel XML layout per ogni attività, inserisco un elemento <LinearLayout><Button/><Button/><Button/></LinearLayout>. E poi hanno una classe comune ascoltatore che gestirà i clic sui pulsanti. Così, ogni attività avrà un'istanza di questo ascoltatore.

  2. Per creare una classe LinearLayout estende personalizzato Widget, mettere tutti i pulsanti come i suoi membri statici e lasciare gestire i clic sui pulsanti. Includere questo controllo personalizzato in ogni schermata.

non sono sicuro che l'approccio da seguire. Si prega di consulenza. Alternative apprezzato anche

che segue è quello che penso su approcci di cui sopra:
Il problema con il primo approccio:

  1. Si genererà un sacco di codice boilerplate (findViewByIds, setOnClickListener ecc)

  2. Supponendo che ci sono 5 attività e 3 pulsanti della scheda, il numero totale di oggetti Button creati in fase di esecuzione sarà di 5 x 3 = 15

Mi piacerebbe prendere la 2 ° approccio perché:

  1. Tutto il codice (stato e il comportamento) sarà incapsulato dalla classe di widget. Codice Boilerplate Meno.

  2. Dal momento che i pulsanti saranno membri statici, il numero totale di oggetti Button creati a runtime sarà solo tre. Anche se, i membri statici rimarranno in memoria per un tempo più lungo (fino al JVM scarica la classe), dal momento che è presente in ogni schermata Penso che questo può essere scusato il controllo.

Grazie.

È stato utile?

Soluzione 2

Purtroppo, non ho potuto trovare un modo per personalizzare il built-in TabWidget per farlo sembrare come UITabBar. Così, ho intenzione di creare un controllo personalizzato e hanno i pulsanti come membri statici (prendono il secondo approccio). Il controllo gestirà gli scatti come previsto.
Ho notato che la premiata applicazione Plink Arte troppo ha un controllo struttura a schede che è simile a iPhone UITabBar.

Altri suggerimenti

Perché non usare l'attuazione TabWidget esistente in Android?

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

Non solo sta attuando il tuo widget proprio lavoro in più, è probabile che si sentono fuori luogo se confrontato con altre applicazioni sulla piattaforma.

In particolare, qui sono alcuni problemi che vedo:

  1. Quando l'aspetto della scheda della barra modifiche a causa di un aggiornamento del sistema, dovrete ri-scrivere il codice. Lei è anche improbabile che corrispondere esattamente il look and feel del costruito in barra delle schede. (Pensate Java su OS X).

  2. Ogni volta che un utente fa clic su una scheda, si aggiungerà un'altra attività alla pila. Non solo questo è uno spreco di memoria, ma ogni volta che l'utente fa clic sul pulsante Indietro sul telefono, andrà alla scheda precedente. Questo non è il modo in cui si suppone che la barra delle schede di lavoro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top