Sobes.tech
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āno onDraw() 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īgs invalidate(), 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āno onMeasure() un onLayout() izpildi, pēc tam onDraw(). Lieto, ja View izmēri vai pozīcija mainās (piemēram, pievienojot/izņemot bērnus ViewGroup).

Metožu salīdzinājums:

Metode Izsaukuma pavediens Layout pārskatīšana Pārkrāsošana
invalidate() UI pavediens
postInvalidate() Jebkurš pavediens
requestLayout() UI pavediens 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()