Il modo migliore per creare una classe di visualizzazione personalizzata da un file di layout XML?

StackOverflow https://stackoverflow.com/questions/8864709

Domanda

Ho un relativeLayout definito in un file di layout XML chiamato "myview.xml" che contiene una serie di sotto-view (textViews, ImageViews ecc.).

Voglio creare un oggetto/classe View denominato "myview" che rappresenti questo relativeyout, che mi consente di modificare le proprietà delle sotto-visioni usando i metodi che definirò e tale che posso aggiungere (e recuperare) le istanze di myview programmaticamente (da) altre opinioni.

Qual è il modo migliore per farlo? Al momento sto creando una classe chiamata "MyView" che estende Framelayout e in tre costruttori di Framelayout prevalente che chiamo i seguenti metodi ...

LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.myview, null);
addView(view);

... Funziona ma significa che tutti i miei relativeyout sono contenuti all'interno di framelayout e quindi ho uno strato extra (inutile) nella mia vista gerarchia ...

È stato utile?

Soluzione

Faccio praticamente la stessa cosa. Ma invio "questo" piuttosto che null e non aggiungo quella vista alla vista genitore.

LayoutInflater inflater =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.myview, this);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top