Middle
Pastāsti par metodēm, kas pārkrāso skatu.
sobes.tech AI
Atbilde no AI
Metodes:
invalidate(): Atzīmē View kā "netīru", kas prasa pārkrāsošanu. PlānoonDraw()izpildi nākotnē. Pārkrāsošana notiek galvenajā pavedienā. Lieto, ja ārējās īpašības (krāsa, fons utt.) mainās.postInvalidate(): Līdzīgsinvalidate(), bet var tikt izsaukts no jebkura pavediena, ne tikai no galvenā. Droši lietot fonu pavedienos.requestLayout(): Atzīmē View kā "neatbilstošu", kas prasa pārskatīt tā izmēru un pozīciju. PlānoonMeasure()unonLayout()izpildi, pēc tamonDraw(). Lieto, ja View izmēri vai pozīcija mainās (piemēram, pievienojot/izņemot bērnusViewGroup).
Metožu salīdzinājums:
| Metode | Izsaukuma pavediens | Layout pārskatīšana | Pārkrāsošana |
|---|---|---|---|
invalidate() |
UI pavediens | Nē | Jā |
postInvalidate() |
Jebkurš pavediens | Nē | Jā |
requestLayout() |
UI pavediens | Jā | Jā (pēc layout) |
Piemērs invalidate() izmantošanai:
// Mainīt View krāsu un pieprasīt pārkrāsošanu
myView.setBackgroundColor(Color.RED)
myView.invalidate()
Piemērs requestLayout() izmantošanai:
// Pievienot bērnu LinearLayout un pieprasīt layout pārskatīšanu un pārkrāsošanu
val jaunsTextView = TextView(context)
linearLayout.addView(jaunsTextView)
linearLayout.requestLayout()