Differenza tra View e ViewGroup in Android


Risposte:


131

Visualizza

  1. View gli oggetti sono gli elementi costitutivi di base degli elementi dell'interfaccia utente (UI) in Android.
  2. View è un semplice rettangolo che risponde alle azioni dell'utente.
  3. Esempi sono EditText, Button, CheckBoxecc ..
  4. Viewsi riferisce alla android.view.Viewclasse, che è la classe base di tutte le classi dell'interfaccia utente.

ViewGroup

  1. ViewGroupè il contenitore invisibile. Tiene VieweViewGroup
  2. Ad esempio, LinearLayoutè quello ViewGroupche contiene Button (View) e anche altri layout.
  3. ViewGroup è la classe base per Layouts.

11
inoltre penso che valga la pena notare, ViewGroup è una sottoclasse di View
lv99Zubat

Quindi, se ViewGroup è una sottoclasse di View significa che View è la classe base per Layouts e non ViewGroup?
Shivanshu

1
@ Shivanshu Dipende da cosa intendi per "classe base". La classe Viewa sua volta si estendeObject , quindi diresti che Objectè la classe base per i layout?
horcrux

60

L'immagine sotto è la risposta . Non prenderlo troppo complesso.

inserisci qui la descrizione dell'immagine


7
Dritto al punto. L'immagine lo spiega in modo molto pragmatico, il che è positivo, ma la definizione della risposta sopra sembra necessaria anche per aggiungere qualcosa di importante alla risposta nel suo insieme.
ivanleoncz

31
  1. A ViewGroupè una vista speciale che può contenere altre viste (chiamate figli). Il gruppo di viste è la classe di base per layout e contenitori di viste. Questa classe definisce anche la ViewGroup.LayoutParamsclasse che funge da classe base per i parametri di layout.

    Viewclass rappresenta l'elemento di base per i componenti dell'interfaccia utente. Una vista occupa un'area rettangolare sullo schermo ed è responsabile del disegno e della gestione degli eventi. View è la classe base per i widget, che vengono utilizzati per creare componenti dell'interfaccia utente interattiva (pulsanti, campi di testo e così via).

  2. Esempio: ViewGroup (LinearLayout), View (TextView)

Riferimento


14

Viewè un elemento costitutivo di base di UI(Interfaccia utente) in Android. Una vista è una piccola scatola rettangolare che risponde agli input dell'utente. Ad esempio: EditText, Button, CheckBox, ecc ..

ViewGroupè un contenitore invisibile di altre visualizzazioni (visualizzazioni figlio) e altri viewgroup. Ad esempio: LinearLayoutè un viewgroup che può contenere altre viste al suo interno.

ViewGroupè un tipo speciale di visualizzazione che viene esteso da View come classe base. ViewGroupè la classe base per i layout.

come afferma il nome View è singolare e il gruppo di Views è il ViewGroup.

maggiori informazioni: http://www.herongyang.com/Android/View-ViewGroup-Layout-and-Widget.html


4

ViewGroupè esso stesso un Viewcontenitore per altre visualizzazioni. Estende la funzionalità della Viewclasse al fine di fornire modi efficienti per il layout delle viste figlie.

Ad esempio, LinearLayoutè un ViewGroupche ti consente di definire l'orientamento in cui desideri posizionare le viste figlio, è tutto ciò che devi fare e LinearLayoutsi occuperà del resto.



2

in ViewGrouppuoi aggiungere altri Viewcome figli. ViewGroupè la classe base per layout e contenitori di visualizzazione.


1

Viewè il componente SuperClass of All come TextView, EditText, ListView,ecc. mentre ViewGroupè Collection of Views (TextView, EditText, ListView, etc..), un po 'come container.


1

Un oggetto View è un componente dell'interfaccia utente (UI) come un pulsante o una casella di testo ed è anche chiamato widget.

Un oggetto ViewGroup è un layout, ovvero un contenitore di altri oggetti ViewGroup (layout) e oggetti View (widget). È possibile avere un layout all'interno di un altro layout. Si chiama layout annidato ma può aumentare il tempo necessario per disegnare l'interfaccia utente.

L'interfaccia utente per un'app viene creata utilizzando una gerarchia di oggetti ViewGroup e View. In Android Studio è possibile utilizzare la finestra Struttura dei componenti per visualizzare questa gerarchia.

L'editor di layout in Android Studio può essere utilizzato per trascinare gli oggetti della vista (widget) nel layout. Semplifica la creazione di un layout.


1

In parole semplici View è l'elemento dell'interfaccia utente con cui interagiamo quando usiamo un'app, un pulsante Mi piace, modifica testo e immagine, ecc. View è la classe figlia di Android.view.View Mentre il gruppo View è il contenitore che contiene tutte queste visualizzazioni all'interno esso in aggiunta a molti altri gruppi di vista come lineare o layout di cornice ecc. Esempio se progettiamo e prendiamo l'elemento radice come layout lineare ora il nostro layout principale è un layout lineare al suo interno possiamo prendere un altro gruppo di visualizzazioni (cioè un altro layout lineare) e molti altri visualizzazioni come pulsanti o visualizzazione testo ecc.


0

Un ViewGroup descrive il layout delle viste nel suo gruppo. I due esempi di base di ViewGroups sono LinearLayout e RelativeLayout. Rompendo ulteriormente LinearLayout, puoi avere Vertical LinearLayout o Horizontal LinearLayout. Se scegli Layout lineare verticale, le viste verranno impilate verticalmente sullo schermo. I due esempi più elementari di visualizzazioni sono TextView e Button. Quindi, se hai un ViewGroup di Vertical LinearLayout, le tue viste (ad esempio TextView e pulsanti) si allineano verticalmente lungo lo schermo.

Quando gli altri poster mostrano ViewGroup nidificati, ciò che significano è, ad esempio, che una delle righe nel mio Vertical LinearLayout potrebbe effettivamente, al livello inferiore, essere diversi elementi disposti orizzontalmente. In tal caso, avrei un Horizontal LinearLayout come uno dei figli del mio Vertical LinearLayout di primo livello.

Esempio di ViewGroup annidati:
Parent ViewGroup = Vertical LinearLayout

Riga1: TextView1
Riga2: Pulsante1
Riga3: Immagine TextView2 Pulsante2 <- Lineare orizzontale nidificata in Lineare verticale
Riga4: TextView3
Riga5: Pulsante3


1
Esempio di ViewGroup annidati:
sv Math Tutor
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.