Il modo migliore per creare una classe di visualizzazione personalizzata da un file di layout XML?
-
28-10-2019 - |
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 ...
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);