Android - Non OnDraw essere chiamato in vista personalizzata inserita in modo dinamico

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

  •  08-10-2019
  •  | 
  •  

Domanda

Ho una visualizzazione personalizzata di essere inserito in modo dinamico e il onDraw non viene chiamato. Inizialmente ho fatto la visualizzazione personalizzata senza l'inserimento dinamico e ha funzionato bene, ma quando ci si sposta al mio codice di base di lavoro, non riesco a onDraw per ottenere chiamato mai, anche se il costruttore vista viene chiamato e il onMeasure viene anche chiamato. Ho provato a mettere le chiamate invalidate() e postInvalidate() intorno al luogo, ma non sembrano forzare la vista per disegnare. La gerarchia vista sembra la stessa per entrambe le versioni e mi sono perso.

chiunque aiutare

Can?

EDIT: un po 'più test hanno dimostrato che onDraw è sempre chiamato l'emulatore, ma non il portatile. Anche onSizeChanged sul portatile ha i valori corretti che passa, ma l'emulatore i valori sono tutti 0.

EDIT: ho giocato in giro con esso e ancora non può arrivare ovunque, così hanno messo una taglia su di esso. Se avete bisogno di più il codice / xml / info quindi per favore fatemelo sapere.

È stato utile?

Soluzione 2

ho cambiato il View ad un TextView e sembra funzionare ora, anche se sono un po 'confuso da perché il View non ha funzionato.

Altri suggerimenti

Questo suona un po 'come un problema che ho avuto di recente, con la mia prima vista personalizzata. Ha notato se, durante il caricamento di vista della gerarchia, i tuoi visualizzazioni personalizzate appaiono? e comunque fanno appaiono disposti nell'anteprima wireframe o no?

Se quest'ultimo è il caso, di requestLayout() che non viene chiamato (chiamate View Caricamento gerarchia che in ogni vista - è per questo che fa di vista appaiono). Ho anche scoperto che un bug simile è stato segnalato già qui .

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