Sto disegnando un suggerimento dopo aver fatto clic all'interno di un grafico a barre personalizzato (creato con MPAndroidChart). La gerarchia della vista è la seguenteVisualizza limiti esterni non disegnati correttamente
<LinearLayout>
<TextView text=Move & Max Pain/>
<RelativeLayout with 2 textviews>
<chart
clipToChildren=false
clipToPadding=false
/>
</LinearLayout>
Mentre la vista si trova all'interno del grafico o suo fratello inmediate, everthing sembra buono. Ma nel momento in cui si scontra con suo fratello, il tooltip viene troncato
Utilizzando HierarchyViewer posso vedere che il contenuto è presente, ma non è disegnato.
Al fine di ottenere il ritaglio, sto usando questo codice all'interno di disegnare
@Override
public void draw(Canvas canvas, float posx, float posy) {
// take offsets into consideration
posx += getXOffset();
posy += getYOffset();
canvas.save();
// translate to the correct position and draw
canvas.translate(posx, posy);
Rect clipBounds = canvas.getClipBounds();
clipBounds.inset(0, -getHeight());
canvas.clipRect(clipBounds, Region.Op.INTERSECT);
draw(canvas);
canvas.translate(-posx, -posy);
canvas.restore();
}
Se cambio Op a Region.Op.Replace, il tooltip è disegnare correttamente, ma sostituisce il contenuto Toolbar, invece di scorrere sotto di esso.
Potrebbe inviare i codici sorgente di questo? Sembra fantastico, voglio dargli un'occhiata. Grazie comunque. – SilentKnight
Grazie! Ma temo di non poterlo fare, mi dispiace. Io uso https://github.com/PhilJay/MPAndroidChart per i grafici, ma ho personalizzato alcune parti (specialmente le etichette X) – Maragues
Probabilmente non è il tuo unico problema, ma penso che tu stia abusando di canvas.save(). Non dovresti chiamarlo prima della tua prima traduzione, e poi chiamare il ripristino dopo aver finito, piuttosto che chiamare di nuovo il traduttore nella direzione negativa. – charliebeckwith