Filled Text Field
Etiketi kutusunun içinde duran metin alanı: etiket yazının geleceği yerde durur, alan odağı aldığında ya da bir metin tuttuğunda yazının üstündeki kendi satırına çıkar.
import com.pantrixui.components.inputs.filledtextfield.PantrixFilledTextField
- Kutunun içindeki etiket.
labeldinlenirken yazının yerinde ve yazının boyutundadır; odakta ya da bir metin varken küçülür ve kendi satırına çıkar. Etiketi olmayan alanda metin kutunun ortasında durur. - Yer tutucu.
placeholderetiket yerinden çıkmışken görünür: alan boş ve odaktayken. Etiketi olmayan alanda alan boş olduğu sürece görünür. - Dolgu ve çerçeve. Kutu dinlenirken dolgulu ve çerçevesizdir. Odakta ve hatada dolgu yüzey rengine döner ve kutu çerçevelenir; fare üstündeyken de bir çerçeve alır. Devre dışı alanın dolgusu yoktur.
- Yardım metni ve hata.
supportingTextkutunun altında yazar.errorçerçeveyi, yardım metnini ve imlecidangerrolüne çevirir ve ekran okuyucuya bildirilir; etiket kendi renginde kalır. - Birkaç satır.
lineLimits = TextFieldLineLimits.MultiLine(...)ile kutu en az satır sayısı kadar boyludur, en çok satır sayısına kadar uzar ve oradan sonra metni içinde kaydırır: sonundaki çubuk ne kadar kaydığını gösterir. - İkonlar, temizleme düğmesi, sayaç.
leadingIconetiketin ve metnin önünde,trailingIconarkasında durur.showClearButtonalanı boşaltan düğmeyi gösterir;maxLengthuzunluğu sınırlar ve sayacı yazar. - Üç biçim.
statealan biçimde metin durumdan okunur.valueveonValueChangealan biçim metni çağıranda tutar; onda kaydırma çubuğu yoktur.fieldalan biçim değerini, hatasını ve adını formdaki alanından alır. - Stil ve renkler.
style(FilledTextFieldStyle) kutunun şeklini ve ölçülerini,colors(FilledTextFieldColors) renklerini değiştirir: yalnızca verilen alanlar. Devre dışı alan ne verilirse verilsin dolgusuzdur ve temanın devre dışı yazı rengindedir. - Yazının boyu. Yazılan yazı, dinlenen etiket ve yer tutucu stilin
textRole'üyle yazılır: Android'de ve iOS'tabody(16sp), masaüstünde ve web'delabel(14sp). - Otomasyon.
tagKeyile alanFilledTextField_<tagKey>, temizleme düğmesiFilledTextFieldClear_<tagKey>adını alır. Alan odağı aldığını ve temizlendiğini bildirir, metnini asla.
Örnekler
En yalın hâli
En az yazılan: bir TextFieldState ve bir etiket. Etiket kutunun içindedir: alan boşken ve odakta değilken yazının yerinde durur. Alana bas: etiket yazının üstündeki kendi satırına çıkar ve yazıya yer açar. Alan boş bırakılıp çıkılırsa yerine döner.
Yazılan metin durumdan okunur: alttaki satır city.text'i yazıldıkça gösterir.
val city = rememberTextFieldState()
PantrixFilledTextField(
state = city,
modifier = Modifier.fillMaxWidth(),
label = "Şehir",
tagKey = "city"
)
PantrixText(
text = if (city.text.isEmpty()) "Henüz bir şehir yazılmadı" else "Yazılan: ${city.text}",
color = PantrixTheme.colors.textSecondary
)
Etiket ve yer tutucu
İlk alan boş: etiket yazının yerinde durur ve yer tutucu görünmez. Alana bas: etiket yukarı çıkar, yer tutucu onun bıraktığı yerde belirir. Yer tutucu bir etiket değildir; ne yazılacağına bir örnek verir.
İkinci alanda bir metin var, etiketi bu yüzden hep yukarıdadır. Üçüncünün etiketi yok: metin kutunun ortasında durur, yer tutucu alan boş olduğu sürece görünür ve alanın adını ekran okuyucuya contentDescription söyler.
PantrixFilledTextField(
state = rememberTextFieldState(),
modifier = Modifier.fillMaxWidth(),
label = "Web sitesi",
placeholder = "https://ornek.com",
tagKey = "website"
)
PantrixFilledTextField(
state = rememberTextFieldState("Kadıköy"),
modifier = Modifier.fillMaxWidth(),
label = "İlçe",
tagKey = "district"
)
PantrixFilledTextField(
state = rememberTextFieldState(),
modifier = Modifier.fillMaxWidth(),
placeholder = "Mahalle ara",
contentDescription = "Mahalle ara",
tagKey = "neighbourhood"
)
Yardım metni ve hata
supportingText kutunun altında durur. error = true kutuyu danger rengiyle çerçeveler; yardım metni ve imleç de o renge döner ve mesaj ekran okuyucuya hata olarak bildirilir. Etiket kendi renginde kalır: hatayı çerçeve ve mesaj söyler. Dolgu, odakta olduğu gibi, yüzey rengine döner.
Alan hatada başlar. Boşluğu sil: çerçeve hatanın renginden çıkar ve hata mesajının yerini yardım metni alır.
val username = rememberTextFieldState("ayşe yılmaz")
val hasSpace = username.text.contains(' ')
PantrixFilledTextField(
state = username,
modifier = Modifier.fillMaxWidth(),
label = "Kullanıcı adı",
supportingText = if (hasSpace) "Kullanıcı adında boşluk olamaz" else "Profilinizin adresinde görünür",
error = hasSpace,
showClearButton = true,
tagKey = "username"
)
İkon, temizleme düğmesi ve eylem tuşu
leadingIcon etiketin ve metnin önünde durur. Yuva içine konanı boyutlandırmaz; ikon, dolgulu alanın stilindeki boyutu alır: PantrixTheme.style(FilledTextFieldStyle).iconSize. showClearButton alan boş değilken onu boşaltan düğmeyi gösterir: düğme imleci alanda bırakır ve Tab durağı değildir.
keyboardOptions klavyenin eylem tuşunu "Ara" yapar; onKeyboardAction o tuşa basılınca çağrılır. Bir şey yazıp klavyenin "Ara" tuşuna ya da Enter'a bas: uygulamanın snackbar'ı arananı söyler.
val snackbars = LocalPantrixSnackbars.current
val scope = rememberCoroutineScope()
val query = rememberTextFieldState()
PantrixFilledTextField(
state = query,
modifier = Modifier.fillMaxWidth(),
label = "Şube ara",
leadingIcon = {
PantrixIcon(
imageVector = PantrixIcons.Search,
contentDescription = null,
size = PantrixTheme.style(FilledTextFieldStyle).iconSize
)
},
showClearButton = true,
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search),
onKeyboardAction = { scope.launch { snackbars?.show(message = "Aranan şube: ${query.text}") } },
tagKey = "branch"
)
Giriş ve çıkış dönüşümleri
inputTransformation rakam olmayan bir şey içeren değişikliği bütünüyle geri çevirir; maxLength = 4 onun geçirdiğine uygulanır. outputTransformation ay ile yılın arasına bir eğik çizgi çizer: çizgi metne girmez.
"1228" yaz: kutuda "12/28" görünür, alttaki satırın okuduğu expiry.text ise dört rakamdır.
val expiry = rememberTextFieldState()
PantrixFilledTextField(
state = expiry,
modifier = Modifier.fillMaxWidth(),
label = "Son kullanma tarihi",
placeholder = "AA/YY",
maxLength = 4,
showCharacterCount = false,
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
inputTransformation = DigitsOnly,
outputTransformation = MonthSlashYear,
contentType = ContentType.CreditCardExpirationDate,
tagKey = "expiry"
)
PantrixText(text = "Tutulan metin: \"${expiry.text}\"", color = PantrixTheme.colors.textSecondary)
private val DigitsOnly = InputTransformation {
if (!asCharSequence().all(Char::isDigit)) revertAllChanges()
}
private val MonthSlashYear = OutputTransformation {
if (length > 2) insert(2, "/")
}
Bir para gönderme formu
Bir para gönderme formu, üç biçim bir arada. İlk iki alan forma bağlıdır: değerini, hatasını ve adını formdaki alanından alır; boş bırakılıp çıkılırsa kuralın mesajı kutunun altında görünür ve kutu hata rengiyle çerçevelenir. Tutar alanı metnini bir String olarak tutar ve rakam olmayanı onValueChange içinde geri çevirir: geri çevrilen değişiklik ekranda görünmez. Sınırı yedi rakamdır; sayacı showCharacterCount = false ile gizlenmiştir.
Açıklama üç satır yüksekliğindedir: sığmayan metin kutunun içinde kayar ve sonundaki çubuk ne kadar kaydığını gösterir. Metni rememberTextFieldState ile kurulan durumdadır ve gönderilirken oradan okunur: bildirim onu note.text ile alır.
İlk üç alanda klavyenin "İleri" tuşu odağı sonraki alana taşır. Alanları boş bırakıp "Gönder"e bas: form gönderilmez, hatalı ilk alan odağı alır.
val snackbars = LocalPantrixSnackbars.current
val scope = rememberCoroutineScope()
val form = rememberFormState()
var amount by rememberSaveable { mutableStateOf("") }
val note = rememberTextFieldState()
PantrixFilledTextField(
field = form.field("recipient", initial = "", Rules.notBlank("Alıcının adını yazın")),
modifier = Modifier.fillMaxWidth(),
form = form,
label = "Alıcı adı soyadı",
keyboardOptions = KeyboardOptions(capitalization = KeyboardCapitalization.Words, imeAction = ImeAction.Next)
)
PantrixFilledTextField(
field = form.field("iban", initial = "", Rules.notBlank("IBAN'ı yazın")),
modifier = Modifier.fillMaxWidth(),
form = form,
label = "IBAN",
placeholder = "TR00 0000 0000 0000 0000 0000 00",
showClearButton = true,
keyboardOptions = KeyboardOptions(
capitalization = KeyboardCapitalization.Characters,
imeAction = ImeAction.Next
)
)
PantrixFilledTextField(
value = amount,
onValueChange = { if (it.all(Char::isDigit)) amount = it },
modifier = Modifier.fillMaxWidth(),
label = "Tutar",
placeholder = "0",
supportingText = "Yalnızca rakam",
trailingIcon = { PantrixText(text = "TL") },
maxLength = 7,
showCharacterCount = false,
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Next),
tagKey = "amount"
)
PantrixFilledTextField(
state = note,
modifier = Modifier.fillMaxWidth(),
label = "Açıklama",
placeholder = "Kira, aidat, borç…",
maxLength = 140,
lineLimits = TextFieldLineLimits.MultiLine(minHeightInLines = 3, maxHeightInLines = 3),
tagKey = "transfer_note"
)
PantrixButton(
text = "Gönder",
onClick = {
scope.launch {
form.submit {
// Açıklama, kullanılacağı anda durumdan okunur.
val sent = if (note.text.isBlank()) "Para gönderildi" else "Para gönderildi: ${note.text}"
snackbars?.show(message = sent, tagKey = "transfer_sent")
}
}
},
form = form,
tagKey = "send_transfer"
)
Yüksekliği verilen alan
Alana verilen yükseklik alanın bütününündür: Modifier.height(140.dp). Kutu, altındaki yardım metninin bıraktığı yüksekliği alır; etiket ve metin kutunun içinde kalır, sığmayan metin orada kayar ve sonundaki çubuk ne kadar kaydığını gösterir.
PantrixFilledTextField(
state = rememberTextFieldState(COMPLAINT),
modifier = Modifier.fillMaxWidth().height(140.dp),
label = "Şikâyetiniz",
supportingText = "Alanın yüksekliği sabit: metin kutunun içinde kayar",
lineLimits = TextFieldLineLimits.MultiLine(),
tagKey = "complaint"
)
private const val COMPLAINT = "Kartımdan aynı ödeme iki kez çekildi.\n" +
"İlki ayın üçünde, ikincisi dördünde.\n" +
"İkisi de aynı tutarda ve aynı işyerinden.\n" +
"Dekontların ikisi de elimde.\n" +
"Birinin iade edilmesini istiyorum."
Devre dışı ve salt okunur
enabled = false alanın dolgusunu kaldırır: devre dışı alan, üstünde durduğu zeminde temanın devre dışı yazı rengiyle çizilir, odak almaz ve ekran okuyucuya devre dışı olduğu söylenir. colors ne verirse versin böyledir: devre dışı bir alan uygulamanın her yerinde aynı görünür.
readOnly = true alanın dolgusu ve renkleri yerindedir: alan odaklanır, metni seçilir ve kopyalanır, yalnızca değiştirilemez.
PantrixFilledTextField(
state = rememberTextFieldState("Vadesiz TL - 1042"),
modifier = Modifier.fillMaxWidth(),
enabled = false,
label = "Gönderen hesap",
supportingText = "Bu işlemde değiştirilemez",
tagKey = "account"
)
PantrixFilledTextField(
state = rememberTextFieldState("TR33 0006 1005 1978 6457 8413 26"),
modifier = Modifier.fillMaxWidth(),
readOnly = true,
label = "IBAN'ınız",
supportingText = "Salt okunur: seçilip kopyalanabilir",
tagKey = "own_iban"
)
Kendi renkleri
colors ile verilen renkler kullanılır, verilmeyenler temadaki rolünde kalır. İlk alanın renkleri temanın info rolünden alınır. Dinlenirken dolgu rolün yumuşak tonudur; etiket, yazı ve ikon o tonun üstünde okunan renktedir. Odakta ve fare üstündeyken çerçeve rolün kendi rengidir. Odaktaki dolgu, yer tutucu, yardım metni ve hata rengi verilmemiştir: temadaki hâlleriyle kalır.
İkinci alan aynısını uygulamanın kendi moruyla yapar: temanın hiçbir rolünde olmayan bir renk. Alana bas: çerçeve ve imleç mordur, dolgu odakta temanın yüzey rengine döner.
val info = PantrixTheme.colors.info
PantrixFilledTextField(
state = rememberTextFieldState(),
modifier = Modifier.fillMaxWidth(),
label = "Referans kodu",
placeholder = "PX-0000",
supportingText = "Varsa, sizi davet eden kişinin kodu",
showClearButton = true,
colors = FilledTextFieldColors(
container = info.container,
hoveredOutline = info.color,
focusedOutline = info.color,
text = info.onContainer,
label = info.onContainer,
icon = info.onContainer,
cursor = info.color
),
tagKey = "reference"
)
val own = ownColors()
PantrixFilledTextField(
state = rememberTextFieldState(),
modifier = Modifier.fillMaxWidth(),
label = "Kampanya kodu",
colors = FilledTextFieldColors(
container = own.container,
hoveredOutline = own.color,
focusedOutline = own.color,
text = own.onContainer,
label = own.onContainer,
cursor = own.color
),
tagKey = "own_colors"
)
Kendi stili
style bu çağrının kendi stilidir: yalnızca verdiği alanlar değişir, gerisi temanın ve platformun stilinden gelir.
İlk alanın kutusu tam yuvarlaktır: FilledTextFieldStyle(shape = ShapeRole.Full). İkincinin köşeleri küçüktür ve borderWidth = 2.dp ile çerçevesi kalındır. Çerçeve odakta, hatada ve fare üstündeyken görünür; dinlenirken kutunun çerçevesi yoktur.
PantrixFilledTextField(
state = rememberTextFieldState(),
modifier = Modifier.fillMaxWidth(),
label = "Tam yuvarlak kutu",
style = FilledTextFieldStyle(shape = ShapeRole.Full),
tagKey = "pill"
)
PantrixFilledTextField(
state = rememberTextFieldState(),
modifier = Modifier.fillMaxWidth(),
label = "Küçük köşeler, kalın çerçeve",
style = FilledTextFieldStyle(shape = ShapeRole.Small, borderWidth = 2.dp),
tagKey = "small_corners"
)
API
state
Etiketi kutusunun içinde duran metin alanı: etiket yazının geleceği yerde durur, alan odağı aldığında ya da bir metin tuttuğunda yazının üstündeki kendi satırına çıkar.
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
state | TextFieldState | Metin ve seçim. rememberTextFieldState() ile kurulur ve yazılan ondan okunur: metnin kullanıldığı yerde state.text, değiştikçe izlemek için snapshotFlow { state.text.toString() }. | |
modifier | Modifier | Modifier | Alanın bütününün modifier'ı: kutusunun ve kutunun altındakilerin. fillMaxWidth() kutuyu üst öğesi kadar geniş yapar. Verilen yükseklik de alanın bütününündür: kutu, yardım metninin bıraktığı yüksekliği doldurur. Tek satır kutunun ortasında durur, birkaç satır üstünden başlar ve kutuya sığmayan metin içinde kayar. |
enabled | Boolean | true | Alana yazılıp yazılamayacağı. Yazılamayan alan odak almaz, dolgusuz ve devre dışı renklerle çizilir, devre dışı olduğunu da söyler. |
readOnly | Boolean | false | Metnin salt okunur olup olmadığı: alan yine odaklanır, metni seçilir ve kopyalanır. |
label | String? | null | Alanın ne için olduğu. Kutunun içinde yazar ve ekran okuyucu için alanın adıdır. Etiket yoksa metin kutunun ortasında durur ve placeholder alan boş olduğu sürece görünür. |
placeholder | String? | null | Alan boşken ve etiketi yerinden çıkmışken, yani alan odaktayken, yazının geleceği yerde gösterilir. |
supportingText | String? | null | Kutunun altındaki yardım metni, daha küçük bir yazıyla. error ile birlikte neyin düzeltileceğini söyleyen mesajdır ve ekran okuyucu onu hata olarak duyurur. |
error | Boolean | false | Metnin yanlış olup olmadığı: kutu danger rolünün rengiyle çerçevelenir, yardım metni ve imleç de o renge döner ve ekran okuyucuya bildirilir. |
leadingIcon | (@Composable () -> Unit)? | null | Etiketin ve metnin önünde durur, ikincil yazı rengindedir. Yuva içine konanı boyutlandırmaz: PantrixIcon(size = PantrixTheme.style(FilledTextFieldStyle).iconSize) platformun boyutundadır. |
trailingIcon | (@Composable () -> Unit)? | null | Metnin ve temizleme düğmesinin arkasında durur. |
showClearButton | Boolean | false | Alana yazılabildiği ve alan boş olmadığı sürece, alanı boşaltan bir düğme gösterir. Düğme imleci alanda bırakır ve Tab durağı değildir. |
maxLength | Int? | null | Kullanıcının girebileceği en çok karakter sayısı: karakterler String.length'in saydığı gibi sayılır. Sınırı aşacak bir değişiklik bütünüyle geri çevrilir. Kodla verilen metin kesilmez ve kullanıcı onu yine kısaltabilir. Pozitif olmalıdır. |
showCharacterCount | Boolean | true | maxLength verilmişken kutunun altında count/maxLength gösterir. |
lineLimits | TextFieldLineLimits | TextFieldLineLimits.SingleLine | Tek satır ya da TextFieldLineLimits.MultiLine: kutu en az satır sayısı kadar boyludur, en çok satır sayısına kadar uzar ve oradan sonra metnini kaydırır. İkisinde de Tab odağı ilerletir. |
keyboardOptions | KeyboardOptions | KeyboardOptions.Default | Klavyenin türü, büyük harfleri, düzeltmeleri ve eylem tuşu. |
onKeyboardAction | KeyboardActionHandler? | null | Klavyenin eylem tuşuna basılınca, keyboardOptions'ın adlandırdığı eylem için çağrılır. Null verilirse platformun yaptığı kalır. |
inputTransformation | InputTransformation? | null | Kullanıcı yazarken metne yapılan işlem. maxLength ile birlikte önce bu çalışır ve sınır onun geçirdiğine uygulanır. |
outputTransformation | OutputTransformation? | null | Metnin, değiştirilmeden nasıl gösterileceği. |
contentType | ContentType? | null | Platforma alanın ne tuttuğunu söyler, alanı o doldurabilsin diye: ContentType.EmailAddress ve benzerleri. |
style | FilledTextFieldStyle? | null | Bu çağrının kendi stili: çevresindeki her stili ezer, yoğunluk ona da uygulanır. Yalnızca verdiği alanlar değişir ve her platformda değişir. |
colors | FilledTextFieldColors? | null | Bu çağrının kendi renkleri, temanın rollerinin yerine: verilenler kullanılır, gerisi temanın renklerinde kalır. Devre dışı bir alanın, ne verilirse verilsin dolgusu yoktur ve alan temanın devre dışı yazı rengiyle çizilir. |
contentDescription | String? | null | Ekran okuyucunun alan için söylediği: label verilmeyen alanın adıdır. Aynı şeyi söyleyen bir placeholder o zaman yalnızca göze kalır, ekran okuyucuya okunmaz. |
tagKey | String? | null | Alanın otomasyon anahtarı: alan FilledTextField_<tagKey>, temizleme düğmesi FilledTextFieldClear_<tagKey> diye etiketlenir. Alan odağı aldığını ve temizlendiğini bildirir, metnini asla. |
interactionSource | MutableInteractionSource? | null | Alanın dışarı taşınan etkileşimleri: odağı, üstündeki fare ve basışları. Null verilirse alan kendi kaynağını tutar. |
value
Metni, çağıranın tuttuğu bir String olan dolgulu metin alanı: alan value'yu gösterir ve kullanıcının her değişikliğini onValueChange'e sorar.
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
value | String | Alanın gösterdiği metin. | |
onValueChange | (String) -> Unit | Kullanıcının her değişikliğinde yeni metnin bütünüyle sorulur. Temizleme düğmesi de boş bir metinle sorar. | |
modifier | Modifier | Modifier | Alanın bütününün modifier'ı: kutusunun ve kutunun altındakilerin. |
enabled | Boolean | true | Alana yazılıp yazılamayacağı. |
readOnly | Boolean | false | Metnin salt okunur olup olmadığı: alan yine odaklanır, metni seçilir ve kopyalanır. |
label | String? | null | Alanın ne için olduğu. Kutunun içinde yazar ve ekran okuyucu için alanın adıdır. |
placeholder | String? | null | Alan boşken ve etiketi yerinden çıkmışken yazının geleceği yerde gösterilir. |
supportingText | String? | null | Kutunun altındaki yardım metni. error ile birlikte neyin düzeltileceğini söyleyen mesajdır. |
error | Boolean | false | Metnin yanlış olup olmadığı: kutu danger rolünün rengiyle çerçevelenir ve ekran okuyucuya bildirilir. |
leadingIcon | (@Composable () -> Unit)? | null | Etiketin ve metnin önünde durur. Yuva içine konanı boyutlandırmaz. |
trailingIcon | (@Composable () -> Unit)? | null | Metnin ve temizleme düğmesinin arkasında durur. |
showClearButton | Boolean | false | Alana yazılabildiği ve alan boş olmadığı sürece, boş bir metin isteyen bir düğme gösterir. |
maxLength | Int? | null | Kullanıcının girebileceği en çok karakter sayısı. Sınırı aşacak bir değişiklik, onValueChange'e sorulmadan önce bütünüyle geri çevrilir. Sınırı aşan bir value olduğu gibi gösterilir ve kullanıcı onu yine kısaltabilir. Pozitif olmalıdır. |
showCharacterCount | Boolean | true | maxLength verilmişken kutunun altında count/maxLength gösterir. |
singleLine | Boolean | true | Alanın tek satır tutup tutmadığı: tek satır yana doğru kayar. Aksi söylenmedikçe tek satır tutar. value içindeki bir satır sonu o zaman boşluk olarak gösterilir, value ise onu korur. |
minLines | Int | 1 | Birkaç satırlı bir alanda kutunun en az kaç satır boyunda olduğu. |
maxLines | Int | if (singleLine) 1 else Int.MAX_VALUE | Birkaç satırlı bir alanda kutunun, metni kaymadan önce en çok kaç satıra kadar uzadığı. |
keyboardOptions | KeyboardOptions | KeyboardOptions.Default | Klavyenin türü, büyük harfleri, düzeltmeleri ve eylem tuşu. |
keyboardActions | KeyboardActions | KeyboardActions.Default | Klavyenin eylem tuşunun, keyboardOptions'ın adlandırdığı eylem için ne yaptığı. |
visualTransformation | VisualTransformation | VisualTransformation.None | Metnin, değiştirilmeden nasıl gösterileceği: PasswordVisualTransformation() her karakter için bir nokta çizer. |
contentType | ContentType? | null | Platforma alanın ne tuttuğunu söyler, alanı o doldurabilsin diye. |
style | FilledTextFieldStyle? | null | Bu çağrının kendi stili: çevresindeki her stili ezer, yoğunluk ona da uygulanır. Yalnızca verdiği alanlar değişir ve her platformda değişir. |
colors | FilledTextFieldColors? | null | Bu çağrının kendi renkleri, temanın rollerinin yerine: verilenler kullanılır, gerisi temanın renklerinde kalır. Devre dışı bir alanın, ne verilirse verilsin dolgusu yoktur ve alan temanın devre dışı yazı rengiyle çizilir. |
contentDescription | String? | null | Ekran okuyucunun alan için söylediği: label verilmeyen alanın adıdır. |
tagKey | String? | null | Alanın otomasyon anahtarı: alan FilledTextField_<tagKey>, temizleme düğmesi FilledTextFieldClear_<tagKey> diye etiketlenir. |
interactionSource | MutableInteractionSource? | null | Alanın dışarı taşınan etkileşimleri. Null verilirse alan kendi kaynağını tutar. |
field
Bir formun alanına bağlı dolgulu metin alanı: metni, hatası ve adı field'dan gelir.
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
field | FormField<String> | Metin alanının gösterdiği ve değiştirdiği form alanı. | |
modifier | Modifier | Modifier | Alanın bütününün modifier'ı. |
form | FormState? | null | Verilirse klavyenin eylem tuşu formu, forma kayıtlı düğme üzerinden gönderir. Next ya da Previous eylemi odağı her zamanki gibi taşır. Eylem adlandırmayan tek satırlı bir alan ImeAction.Done alır, çünkü varsayılan eylem hiçbir işleyiciye ulaşmaz. Birkaç satırlı bir alan olduğu gibi bırakılır: orada Enter yeni satır açar. Çağıranın kendi onKeyboardAction'ı gönderimin yerine geçer. |
enabled | Boolean | true | Alana yazılıp yazılamayacağı. |
readOnly | Boolean | false | Metnin salt okunur olup olmadığı. |
label | String? | null | Alanın ne için olduğu. Kutunun içinde yazar ve ekran okuyucu için alanın adıdır. |
placeholder | String? | null | Alan boşken ve etiketi yerinden çıkmışken yazının geleceği yerde gösterilir. |
supportingText | String? | null | Kutunun altındaki yardım metni: alanın orada gösterecek bir hatası olmadığı sürece. |
leadingIcon | (@Composable () -> Unit)? | null | Etiketin ve metnin önünde durur. |
trailingIcon | (@Composable () -> Unit)? | null | Metnin ve temizleme düğmesinin arkasında durur. |
showClearButton | Boolean | false | Alana yazılabildiği ve alan boş olmadığı sürece, alanı boşaltan bir düğme gösterir. |
maxLength | Int? | null | Kullanıcının girebileceği en çok karakter sayısı. Pozitif olmalıdır. |
showCharacterCount | Boolean | true | maxLength verilmişken kutunun altında count/maxLength gösterir. |
lineLimits | TextFieldLineLimits | TextFieldLineLimits.SingleLine | Tek satır ya da TextFieldLineLimits.MultiLine. İkisinde de Tab odağı ilerletir. |
keyboardOptions | KeyboardOptions | KeyboardOptions.Default | Klavyenin türü, büyük harfleri, düzeltmeleri ve eylem tuşu. |
onKeyboardAction | KeyboardActionHandler? | null | Klavyenin eylem tuşuna basılınca, formun gönderimi yerine çağrılır. |
inputTransformation | InputTransformation? | null | Kullanıcı yazarken metne yapılan işlem. |
outputTransformation | OutputTransformation? | null | Metnin, değiştirilmeden nasıl gösterileceği. |
contentType | ContentType? | null | Platforma alanın ne tuttuğunu söyler, alanı o doldurabilsin diye. |
style | FilledTextFieldStyle? | null | Bu çağrının kendi stili: çevresindeki her stili ezer, yoğunluk ona da uygulanır. Yalnızca verdiği alanlar değişir ve her platformda değişir. |
colors | FilledTextFieldColors? | null | Bu çağrının kendi renkleri, temanın rollerinin yerine: verilenler kullanılır, gerisi temanın renklerinde kalır. Devre dışı bir alanın, ne verilirse verilsin dolgusu yoktur ve alan temanın devre dışı yazı rengiyle çizilir. |
contentDescription | String? | null | label verilmeyen alan için ekran okuyucunun söylediği. |
interactionSource | MutableInteractionSource? | null | Alanın dışarı taşınan etkileşimleri. Null verilirse alan kendi kaynağını tutar. |
FilledTextFieldStyle
PantrixFilledTextField'ın kutusu: şekli, en az yüksekliği ve genişliği, içindekilerin çevresindeki boşluk, ikonları ve çerçevesi.
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
shape | ShapeSpec | ShapeSpec.Unspecified | Kutunun şekli. Tam yuvarlak bir şekil, ShapeRole.Full, yalnızca alan tek satır tutarken bir haptır: birkaç satırlı bir alan onun yerine ShapeRole.Large alır, çünkü bir kapsülün eğrisi metninin ilk satırına girer. |
height | Dp | Dp.Unspecified | Kutunun en az yüksekliği. |
minWidth | Dp | Dp.Unspecified | Kutunun en az genişliği: boş bir alanın, kullanıcı içine yazdıkça genişlemesini önler. |
horizontalPadding | Dp | Dp.Unspecified | İkon olmayan yerde, kutunun kenarı ile etiketi ve metni arasındaki boşluk. |
verticalPadding | Dp | Dp.Unspecified | Etiketin satırının üstündeki ve metnin son satırının altındaki boşluk. |
iconPadding | Dp | Dp.Unspecified | Yuvasındaki bir ikonun çevresindeki boşluk. |
iconSize | Dp | Dp.Unspecified | Yuvadaki bir ikonun alması gereken boyut. Yuva, içine konanı boyutlandırmaz. |
borderWidth | Dp | Dp.Unspecified | Kutunun odakta, hatada ve fare üstündeyken aldığı çerçevenin kalınlığı. Dinlenirken çerçevesi yoktur. |
textRole | TypeRole? | null | Metnin yazıldığı, etiketin dinlendiği ve yer tutucunun yazıldığı yazı ölçeği rolü: Android'de ve iOS'ta body, 16sp, Material 3'ün bir alana yazdığı gibi; masaüstünde ve web'de label, 14sp, işaretçiyle kullanılan bir sayfadaki gibi. |
FilledTextFieldColors
Temanın renklerini almayan bir alan için PantrixFilledTextField'ın boyandığı renkler: verilen renk kullanılır, verilmeyen temadaki rolünde kalır. Bir ürün yalnızca değiştirdiği renkleri verir, başkasını vermez:
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
container | Color | Color.Unspecified | Dinlenirken kutunun dolgusu. Temanın neutral rolünün container'ı. |
focusedContainer | Color | Color.Unspecified | Çerçeveliyken kutunun dolgusu: odakta ve hatada. Temanın surface rengi. |
hoveredOutline | Color | Color.Unspecified | Fare üstündeyken çerçeve. Temanın borderHover rengi. |
focusedOutline | Color | Color.Unspecified | Alan odaktayken çerçeve. Temanın primary rengi. |
error | Color | Color.Unspecified | Metnin yanlış olduğunu söyleyenler: çerçeve, kutunun altındaki mesaj, imleç ve sınırını aştığında sayaç. Temanın danger rengi. |
text | Color | Color.Unspecified | Yazılan metin. Temanın textPrimary rengi. |
label | Color | Color.Unspecified | Etiket: hem dinlenirken yazının yerinde, hem yazının üstündeki kendi satırında. Temanın textSecondary rengi. |
placeholder | Color | Color.Unspecified | Yer tutucu. Temanın textSecondary rengi. |
supportingText | Color | Color.Unspecified | Kutunun altındaki yardım metni ve sayaç. Temanın textSecondary rengi. |
icon | Color | Color.Unspecified | Yuvadaki bir ikonun, kendi rengini vermedikçe çizildiği renk ve temizleme düğmesinin çarpısı. Temanın textSecondary rengi. |
cursor | Color | Color.Unspecified | İmleç ve onunla birlikte bir seçimin tutamaçları ile zemini. Temanın primary rengi. |
scrollBar | Color | Color.Unspecified | Birkaç satırlı bir kutunun metninin ne kadar kaydığını gösteren çubuk. Temanın borderStrong rengi: çubuk, kutunun dolgusunun üstünde bir işarettir ve bir kutunun yumuşak kenarı orada görünmezdi. |
Erişilebilirlik
- Klavye ve dönüşümler.
keyboardOptions,onKeyboardAction,inputTransformation,outputTransformationvecontentTypemetin alanınınkilerle aynıdır.