Filled Auto-resize Text Field
Etiketi kutusunun içinde duran ve yazısı görünür kalmak için küçülen metin alanı: bir tutar, bir kart numarası, kısa bir not, bütünü okunan her şey, PantrixFilledTextField'ın dolgulu kutusunda.
import com.pantrixui.components.inputs.filledautoresizetextfield.PantrixFilledAutoResizeTextField
- Kutunun içindeki etiket.
labeldinlenirken yazının yerinde durur: yazının stili ne olursa olsunbodyboyutunda. Odakta ya da bir metin varken yazının üstündeki satırına çıkar. - Değişmeyen kutu. Kutunun eni stilindeki en az genişlik ya da çağıranın verdiğidir; uzayan yazı onu genişletmez, sığacak kadar küçülür ve kısalınca yeniden büyür.
- En büyük boyut.
textStyleyazının en büyük hâlinin stilidir: temanın bir yazı rolü, bir tutar içintitlegibi. Büyük bir stil kutuyu yalnızca etiketinin ve o stilin bir satırının sığacağı kadar uzatır. - En küçük boyut.
minFontSizeyazının inebileceği en küçük boyuttur: sp olarak, ya da stilin boyutunun bir payı olan em olarak. Verilmezse temanınfootnoteboyutudur. O boyutta da sığmayan yazı her alandaki gibi kayar. - Birkaç satır. Birkaç satırlı alanda kutu en az satır sayısından en çoğuna kadar yazıyla uzar; oradan sonra kutunun boyu değişmez, yazı satır aralığıyla birlikte küçülür.
- Verilen yükseklik. Alana verilen yükseklik satır sayısından önce gelir: kutu, yardım metninin bıraktığını doldurur ve yazı o yüksekliğe sığdırılır.
- Yer tutucu.
placeholderetiket yerinden çıkmışken, alan boş ve odaktayken görünür. Yazının stilindedir ve uzunsa o da küçülür. - Dolgu, çerçeve ve hata. Kutu dinlenirken dolgulu ve çerçevesizdir; odakta ve hatada çerçevelenir.
erroretiketin rengini değiştirmez. Devre dışı alanın dolgusu yoktur. - Üç biçim.
statealan biçimde metin durumdan okunur.valueveonValueChangealan biçim metni çağıranda tutar ve satırlarınısingleLine,minLines,maxLinesile alır.fieldalan biçim bir formun alanına bağlanır. - Otomasyon.
tagKeyile alanFilledAutoResizeTextField_<tagKey>, temizleme düğmesiFilledAutoResizeTextFieldClear_<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. Alana genişlik verilmedi: kutu stilindeki en az genişliktedir ve yazıyla birlikte genişlemez. Hesap adı o kutuya sığmayacak kadar uzun, bu yüzden küçülmüş olarak çizilir; alanda bir metin olduğu için etiket de yazının üstündeki satırındadır.
Metni sil: yazı yeniden büyür. Alan boşalıp odaktan çıkınca etiket yazının yerine iner.
PantrixFilledAutoResizeTextField(
state = rememberTextFieldState("Yılmaz Mimarlık ve Mühendislik Limited Şirketi"),
label = "Hesap adı",
tagKey = "account_name"
)
Yazı stili ve kutunun boyu
textStyle yazının en büyük hâlinin stilidir; verilmezse yazı body boyutundadır. Büyük bir stil kutuyu yalnızca etiketinin ve o stilin bir satırının sığacağı kadar uzatır: ilk iki alanı karşılaştır.
Üçüncü alan boş ve display stilinde. Etiket, yazının stili ne olursa olsun, yazının yerinde body boyutunda durur. Alana bas: etiket yukarı çıkar ve yer tutucu yazının stilinde belirir.
PantrixFilledAutoResizeTextField(
state = rememberTextFieldState("1250"),
modifier = Modifier.fillMaxWidth(),
label = "Stil verilmedi",
tagKey = "style_body"
)
PantrixFilledAutoResizeTextField(
state = rememberTextFieldState("1250"),
modifier = Modifier.fillMaxWidth(),
label = "title stilinde",
textStyle = PantrixTheme.typography.title,
tagKey = "style_title"
)
PantrixFilledAutoResizeTextField(
state = rememberTextFieldState(),
modifier = Modifier.fillMaxWidth(),
label = "display stilinde, boş",
placeholder = "0",
textStyle = PantrixTheme.typography.display,
tagKey = "style_display"
)
En küçük boyut
İki alan da title stilinde aynı adı tutar ve ad ikisinin kutusuna da sığmaz. İlkinde minFontSize verilmedi: yazı temanın footnote boyutuna kadar küçülür. İkincide 16 sp'den küçük yazılmaz. minFontSize em olarak da verilebilir: o zaman stilin kendi boyutunun bir payıdır.
En küçük boyutunda da sığmayan yazı küçülmeyi bırakır ve her alandaki gibi kayar.
val company = "Yılmaz Mimarlık, Mühendislik ve Danışmanlık Limited Şirketi"
PantrixFilledAutoResizeTextField(
state = rememberTextFieldState(company),
label = "Verilmedi: footnote boyutu",
textStyle = PantrixTheme.typography.title,
tagKey = "smallest_default"
)
PantrixFilledAutoResizeTextField(
state = rememberTextFieldState(company),
label = "En küçük 16 sp",
textStyle = PantrixTheme.typography.title,
minFontSize = 16.sp,
tagKey = "smallest_sp"
)
Metnini bir ViewModel'e taşıyan tutar
Bir ödeme tutarı, headline stilinde. Alan durumunu rememberTextFieldState ile, ViewModel'in o an tuttuğu değerden kurar; durumdaki metni snapshotFlow ile izler ve her değişikliği ViewModel'e bildirir. Metin alanın durumundan böyle alınır.
ViewModel'deki ilk değer bir kez okunur. Sonrası tek yönlüdür: metin alandan ViewModel'e akar. Ekran yeniden kurulduğunda ViewModel yerinde kalır ve alan onun değeriyle başlar.
Alttaki satır ViewModel'in tuttuğunu gösterir, düğme de ondan okur: bir tutar gelmeden basılamaz.
val viewModel = viewModel(key = "payment") { PaymentViewModel() }
val snackbars = LocalPantrixSnackbars.current
val scope = rememberCoroutineScope()
val initialUiState = remember(viewModel) { viewModel.uiState.value }
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
val amount = rememberTextFieldState(initialUiState.amount)
LaunchedEffect(amount) {
snapshotFlow { amount.text.toString() }.collectLatest { viewModel.updateAmount(it) }
}
PantrixFilledAutoResizeTextField(
state = amount,
modifier = Modifier.fillMaxWidth(),
label = "Ödenecek tutar",
placeholder = "0",
supportingText = "Yazdıkça küçülür, sildikçe büyür",
trailingIcon = { PantrixText(text = "TL") },
showClearButton = true,
textStyle = PantrixTheme.typography.headline,
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
inputTransformation = DigitsOnly,
tagKey = "payment_amount"
)
PantrixText(
text = "ViewModel: tutar \"${uiState.amount}\", ${uiState.amount.length} hane",
style = PantrixTheme.typography.footnote,
color = PantrixTheme.colors.textSecondary,
tagKey = "payment_state"
)
PantrixButton(
text = "Öde",
onClick = {
scope.launch { snackbars?.show(message = "${uiState.amount} TL ödendi", tagKey = "payment_made") }
},
enabled = uiState.isComplete,
tagKey = "pay"
)
private class PaymentViewModel : ViewModel() {
private val state = MutableStateFlow(PaymentUiState())
val uiState: StateFlow<PaymentUiState> = state.asStateFlow()
fun updateAmount(amount: String) {
state.update { it.copy(amount = amount) }
}
}
private data class PaymentUiState(val amount: String = "") {
val isComplete: Boolean get() = amount.isNotEmpty() && amount.any { it != '0' }
}
private val DigitsOnly = InputTransformation {
if (!asCharSequence().all(Char::isDigit)) revertAllChanges()
}
Metnini String olarak tutan alan
On iki rakamlı bir müşteri numarası. Çağıran numarayı bir String olarak tutar: alan onu gösterir ve her değişikliği sorar, rakam olmayan bir değişiklik alınmadığı için de gösterilmez. Yardım metni o String'ten üretilir.
Sorulan metin bir sonraki kareye kadar value olarak geri dönmelidir, yoksa alan eski metni gösterir ve imleç sıçrar: metni, geri çağrının hemen yazdığı bir durumda tut; metin bir akışta yaşıyorsa state alan biçimi seç.
var number by rememberSaveable { mutableStateOf("") }
val missing = 12 - number.length
PantrixFilledAutoResizeTextField(
value = number,
onValueChange = { if (it.all(Char::isDigit)) number = it },
modifier = Modifier.fillMaxWidth(),
label = "Müşteri numarası",
supportingText = if (missing == 0) "Numara tamam" else "$missing rakam daha",
maxLength = 12,
showCharacterCount = false,
textStyle = PantrixTheme.typography.title,
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
tagKey = "customer_number"
)
Forma bağlı bir referans kodu
field alan biçim değerini, hatasını ve adını formdaki alanından alır: kod boş bırakılıp çıkılırsa kuralın mesajı yardım metninin yerine geçer. form verilen alanda klavyenin eylem tuşu formu "Referansı kaydet" düğmesi üzerinden gönderir.
Forma bağlı bir alanın metni formdaki alanın değeridir: ayrıca alınması gerekmez.
val snackbars = LocalPantrixSnackbars.current
val scope = rememberCoroutineScope()
val form = rememberFormState()
PantrixFilledAutoResizeTextField(
field = form.field("reference", initial = "", Rules.notBlank("Bir referans kodu yazın")),
modifier = Modifier.fillMaxWidth(),
form = form,
label = "Referans kodu",
supportingText = "Dekontun üstündeki kod",
showClearButton = true,
maxLength = 40,
keyboardOptions = KeyboardOptions(capitalization = KeyboardCapitalization.Characters)
)
PantrixButton(
text = "Referansı kaydet",
onClick = {
scope.launch {
form.submit { snackbars?.show(message = "Referans kaydedildi", tagKey = "reference_saved") }
}
},
form = form,
tagKey = "save_reference"
)
Birkaç satırlık bir adres
Birkaç satırlık bir teslimat adresi. Çağıran adresi bir String olarak tutar; alan bu biçimde satırlarını singleLine, minLines ve maxLines ile alır. Kutu iki satır boyundadır ve üç satıra kadar büyür; adres üç satırı geçince kutu aynı kalır, yazı satır aralığıyla birlikte sığacak kadar küçülür.
Yardım metni çağıranın tuttuğu String'ten üretilir. Sınırı 240 karakterdir; sayacı showCharacterCount = false ile gizlenmiştir.
var address by rememberSaveable { mutableStateOf("") }
PantrixFilledAutoResizeTextField(
value = address,
onValueChange = { address = it },
modifier = Modifier.fillMaxWidth(),
label = "Teslimat adresi",
supportingText = if (address.isBlank()) "Mahalle, sokak, kapı numarası" else "${address.length} karakter",
showClearButton = true,
maxLength = 240,
showCharacterCount = false,
singleLine = false,
minLines = 2,
maxLines = 3,
keyboardOptions = KeyboardOptions(capitalization = KeyboardCapitalization.Sentences),
tagKey = "delivery_address"
)
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.
Alan hatada başlar: plakada küçük harfler var. Onları büyük harfle yeniden yaz: hata kalkar. Hatayı alan değil çağıran hesaplar; burada plate.text'i okuyarak.
val plate = rememberTextFieldState("34 abc 1903")
val lowercase = plate.text.any(Char::isLowerCase)
PantrixFilledAutoResizeTextField(
state = plate,
modifier = Modifier.fillMaxWidth(),
label = "Araç plakası",
supportingText = if (lowercase) "Plakayı büyük harfle yazın" else "Ruhsatta yazdığı gibi",
error = lowercase,
showClearButton = true,
maxLength = 12,
showCharacterCount = false,
textStyle = PantrixTheme.typography.title,
keyboardOptions = KeyboardOptions(capitalization = KeyboardCapitalization.Characters),
tagKey = "plate"
)
Devre dışı ve salt okunur
enabled = false alanın dolgusunu kaldırır: alan temanın devre dışı yazı rengiyle çizilir ve odak almaz. Yazısı yine kutusuna sığdırılır: IBAN title stilindedir ve sığmadığı kutuda küçülür.
readOnly = true alanın dolgusu yerindedir: alan odaklanır, metni seçilir ve kopyalanır, yalnızca değiştirilemez.
PantrixFilledAutoResizeTextField(
state = rememberTextFieldState("TR330006100519786457841326"),
modifier = Modifier.fillMaxWidth(),
enabled = false,
label = "Kayıtlı IBAN",
supportingText = "Devre dışı: başlık stilinde, sığmak için küçüldü",
textStyle = PantrixTheme.typography.title,
tagKey = "saved_iban"
)
PantrixFilledAutoResizeTextField(
state = rememberTextFieldState("PX-2026-0914-TR-000187"),
modifier = Modifier.fillMaxWidth(),
readOnly = true,
label = "Sözleşme numarası",
supportingText = "Salt okunur: seçilip kopyalanabilir",
textStyle = PantrixTheme.typography.title,
tagKey = "contract_no"
)
Kendi renkleri ve stili
Bu alan, dolgulu metin alanının FilledTextFieldColors'ını ve FilledTextFieldStyle'ını alır: dolgulu alanlar birlikte biçimlenir.
İlk alanın dolgusu, etiketi, yazısı, çerçevesi ve imleci uygulamanın kendi morundandır; odaktaki dolgu verilmedi, temanın yüzey rengidir. İkincinin kutusu tam yuvarlaktır: FilledTextFieldStyle(shape = ShapeRole.Full). textStyle yazının, style kutunun stilidir.
val own = ownColors()
PantrixFilledAutoResizeTextField(
state = rememberTextFieldState("Yaz 2026 Koleksiyonu"),
modifier = Modifier.fillMaxWidth(),
label = "Liste adı",
textStyle = PantrixTheme.typography.title,
colors = FilledTextFieldColors(
container = own.container,
focusedOutline = own.color,
text = own.onContainer,
label = own.onContainer,
cursor = own.color
),
tagKey = "own_colors"
)
PantrixFilledAutoResizeTextField(
state = rememberTextFieldState("KP-48213"),
modifier = Modifier.fillMaxWidth(),
label = "Kupon",
textStyle = PantrixTheme.typography.title,
style = FilledTextFieldStyle(shape = ShapeRole.Full),
tagKey = "pill"
)
API
state
Etiketi kutusunun içinde duran ve yazısı görünür kalmak için küçülen metin alanı: bir tutar, bir kart numarası, kısa bir not, bütünü okunan her şey, PantrixFilledTextField'ın dolgulu kutusunda.
| 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. Bir yükseklik verilirse yazı, genişliğe sığdırıldığı gibi ona da sığdırılır. |
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. Yazının stilinde yazılır, ama dolgulu bir alanın yazılana eklediği ağırlık olmadan. |
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: bir tutarın arkasındaki para birimi işareti gibi. |
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. |
textStyle | TextStyle? | null | Yazının en büyük hâlinin stili: temanın bir yazı rolü, bir tutar için PantrixTheme.typography.title gibi. Boş bıraktıkları, bir ağırlık daha kalın body stilinden gelir: bu stil verilmediğinde dolgulu bir alanın yazısı da öyle yazılır. Stile göre kısa kalan kutu, etiketini ve o stilin bir satırını alacak kadar uzar. |
minFontSize | TextUnit | PantrixTheme.typography.footnote.fontSize | Yazının inebileceği en küçük boyut: sp olarak bir boyut, ya da stilin kendi boyutunun bir payı olan em olarak bir boyut. Verilmezse temanın footnote boyutudur. Bu boyutta da sığmayan yazı kayar. Bu boyut stilin kendi boyutunda ya da onun üstündeyse yazı hiç küçülmez. |
lineLimits | TextFieldLineLimits | TextFieldLineLimits.SingleLine | Tek satır ya da TextFieldLineLimits.MultiLine: ikincisinde yazı satırlara bölünür ve Enter yeni satır açar. Kutu, yazının en büyük boyutunda satırları ne kadar yer tutuyorsa o kadar boyludur: minHeightInLines satırdan maxHeightInLines satıra kadar uzar, en çok satır sayısı geçilince yazı küçülür. En çok satır sayısı verilmemişse kutu, uzayabildiği sürece yazısıyla birlikte uzar ve yazı yalnızca alana bir yükseklik verildiğinde küçülü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: bir tutarın ayırıcıları gibi. Yazı gösterildiği hâliyle sığdırılır. |
contentType | ContentType? | null | Platforma alanın ne tuttuğunu söyler, alanı o doldurabilsin diye: ContentType.CreditCardNumber 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 FilledAutoResizeTextField_<tagKey>, temizleme düğmesi FilledAutoResizeTextFieldClear_<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
Yazısı sığmak için küçülen ve metnini çağıranın bir String olarak tuttuğu 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, yazının boyutunda 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. |
textStyle | TextStyle? | null | Yazının en büyük hâlinin stili. Boş bıraktıkları, bir ağırlık daha kalın body stilinden gelir. |
minFontSize | TextUnit | PantrixTheme.typography.footnote.fontSize | Yazının inebileceği en küçük boyut, sp ya da em olarak: verilmezse temanın footnote boyutudur. Bu boyutta da sığmayan yazı kayar. |
singleLine | Boolean | true | Alanın tek satır tutup tutmadığı: tek satır kutunun enine sığdırılır. 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: satırlar yazının en büyük boyutunda sayılır. |
maxLines | Int | if (singleLine) 1 else Int.MAX_VALUE | Birkaç satırlı bir alanda kutunun, yazısı küçülmeden ö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: bir tutarın ayırıcıları gibi. Yazı gösterildiği hâliyle sığdırılır. |
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 FilledAutoResizeTextField_<tagKey>, temizleme düğmesi FilledAutoResizeTextFieldClear_<tagKey> diye etiketlenir. |
interactionSource | MutableInteractionSource? | null | Alanın dışarı taşınan etkileşimleri. Null verilirse alan kendi kaynağını tutar. |
field
Yazısı sığmak için küçülen, 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, yazının boyutunda 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. |
textStyle | TextStyle? | null | Yazının en büyük hâlinin stili. Boş bıraktıkları, bir ağırlık daha kalın body stilinden gelir. |
minFontSize | TextUnit | PantrixTheme.typography.footnote.fontSize | Yazının inebileceği en küçük boyut, sp ya da em olarak: verilmezse temanın footnote boyutudur. |
lineLimits | TextFieldLineLimits | TextFieldLineLimits.SingleLine | Tek satır ya da TextFieldLineLimits.MultiLine: ikincisinde yazı, en çok satır sayısı geçilince küçülü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, 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. Yazı gösterildiği hâliyle sığdırılır. |
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. |