Stylizace komponent
Komponenty knihovny lze stylovat prostřednictvím update bloku v Jetpack Compose nebo pomocí XML atributů v layoutu. Oba přístupy lze kombinovat.
SecureTextField (vstupní pole)
Atributy a metody se vztahují na všechny tři vstupní komponenty: SecurePanField, SecureExpiryField a SecureCvvField.
Metody stylování
| Metoda | Parametr | Popis |
|---|---|---|
setHint(hint) | String | Nastaví placeholder text. |
setTextColor(color) | Int | Nastaví barvu textu. |
setHintColor(color) | Int | Nastaví barvu placeholder textu. |
setTextSize(sp) | Float | Nastaví velikost textu v sp. |
setFontFamily(family) | String | Nastaví rodinu písma dle názvu. |
setTypeface(typeface) | Typeface | Nastaví písmo pomocí instance Typeface. |
setBackgroundColor(color) | Int | Nastaví barvu pozadí. |
setBorderColor(color) | Int | Nastaví barvu ohraničení v normálním stavu. |
setFocusedBorderColor(color) | Int | Nastaví barvu ohraničení při zaměření. |
setBorderWidth(widthPx) | Int | Nastaví šířku ohraničení v pixelech. |
setBorderWidthDp(widthDp) | Float | Nastaví šířku ohraničení v dp. |
setCornerRadius(radiusPx) | Float | Nastaví zaoblení rohů v pixelech. |
setCornerRadiusDp(radiusDp) | Float | Nastaví zaoblení rohů v dp. |
setErrorColor(color) | Int | Nastaví barvu chyby (text i ohraničení). |
setErrorTextSize(sp) | Float | Nastaví velikost chybového textu v sp. |
setPadding(horizontalPx, verticalPx) | Int, Int | Nastaví vnitřní odsazení v pixelech. |
setPaddingDp(horizontalDp, verticalDp) | Float, Float | Nastaví vnitřní odsazení v dp. |
Informace
Pro většinu případů doporučujeme používat *Dp varianty setterů (setBorderWidthDp, setCornerRadiusDp, setPaddingDp).
Vstupy jsou v dp a knihovna převod na pixely zajistí interně.
Parametry těchto metod jsou v API anotované @Dimension(unit = Dimension.DP), takže je zřejmé, jakou jednotku očekávají.
field.setBorderWidthDp(2f)
field.setCornerRadiusDp(12f)
Příklad v Compose (update blok)
SecurePanField(
state = panState,
modifier = Modifier.fillMaxWidth(),
update = {
setBackgroundColor(Color.parseColor("#FAFAFA"))
setBorderColor(Color.parseColor("#1976D2"))
setFocusedBorderColor(Color.parseColor("#0D47A1"))
setBorderWidthDp(2f)
setCornerRadiusDp(12f)
setTextColor(Color.parseColor("#212121"))
setHintColor(Color.parseColor("#9E9E9E"))
setTextSize(16f)
setErrorColor(Color.parseColor("#C62828"))
setPaddingDp(horizontalDp = 14f, verticalDp = 10f)
setFontFamily("sans-serif-medium")
}
)
XML atributy
| XML atribut | Formát | Popis |
|---|---|---|
app:secureFieldHint | string | Placeholder text zobrazený v prázdném poli. |
app:secureFieldTextColor | color | Barva textu. |
app:secureFieldHintColor | color | Barva placeholder textu. |
app:secureFieldTextSize | dimension | Velikost textu (např. 18sp). |
app:secureFieldFontFamily | string | Rodina písma (např. "monospace", "sans-serif-medium"). |
app:secureFieldBackgroundColor | color | Barva pozadí pole. |
app:secureFieldBorderColor | color | Barva ohraničení v normálním stavu. |
app:secureFieldBorderWidth | dimension | Šířka ohraničení (např. 2dp). |
app:secureFieldCornerRadius | dimension | Zaoblení rohů (např. 12dp). |
app:secureFieldFocusedBorderColor | color | Barva ohraničení při zaměření (focus). |
app:secureFieldErrorColor | color | Barva chybového textu a ohraničení v chybovém stavu. |
app:secureFieldErrorTextSize | dimension | Velikost chybového textu. |
app:secureFieldPaddingHorizontal | dimension | Horizontální vnitřní odsazení. |
app:secureFieldPaddingVertical | dimension | Vertikální vnitřní odsazení. |
Stavy ohraničení
Ohraničení pole se automaticky mění podle aktuálního stavu:
| Stav | Barva ohraničení | Priorita |
|---|---|---|
| Chyba | errorColor | Nejvyšší |
| Zaměřeno (focus) | focusedBorderColor | Střední |
| Normální | borderColor | Nejnižší |