Filled Text Area
Dolgulu metin kutusu: birkaç satırlık metin için bir alan; bir yorum, bir mesaj ya da bir not. Dolgulu kutusu yazıldıkça uzar, sonra kayar. Etiketi kutunun içindedir; altında yardım metni ya da bir hatanın mesajı ve karakterlerinin sayacıyla birlikte gelir.
import com.pantrixui.components.inputs.filledtextarea.PantrixFilledTextArea
- Üç biçim.
statealan biçim metni birTextFieldState'te tutar.valueveonValueChangealan biçim metni çağıranda tutar; altındaki metin alanı ne kadar kaydığını söylemediği için onun kutusunda çubuk yoktur.fieldalan biçim değerini, hatasını ve adını formdaki alanından alır. - Satırlar.
minLines(varsayılan 3) kutunun en az,maxLines(varsayılan 8) en çok kaç satır olduğunu söyler. AlanaModifier.heightverilirse satırların yerine o yükseklik geçer ve metin kutunun içinde kayar. - Enter yeni satırdır. Klavyenin eylem tuşu her zaman yeni satırdır. Göndermek
onSubmit'tir: donanım klavyesinde Ctrl+Enter ya da Cmd+Enter. Tab odağı sonraki alana taşır, sekme yazmaz. - Yumuşak sınır.
maxLengthaşılabilir (TextLimit.Allow): sayaç sınırı geçince ne kadar geçtiğini sözle yazar ("12 karakter fazla"), sayaç ve çerçeve hata rengine döner. Forma bağlı alanda sınırı aşan metinle form gönderilmez.TextLimit.Blocksınırı aşan değişikliği bütünüyle geri çevirir. Ekran okuyucuya sayaç yazma durunca, sınırda ve sınırın ötesinde söylenir. - İkonlar ve temizleme düğmesi.
leadingIcon,trailingIconveshowClearButtonilk satırın hizasında durur. - Boyutlandırma tutamacı. Masaüstünde ve web'de kutunun alt köşesindeki tutamaç kutuyu sürükleyerek uzatır ve kısaltır; telefonda tutamaç yoktur.
resizable = falsetutamacı kaldırır. - Stil, renkler ve yön.
style(FilledTextFieldStyle) vecolors(FilledTextFieldColors) dolgulu metin alanınınkilerdir. Sağdan sola bir düzende tutamaç alt köşenin solundadır.
Örnekler
Büyüyen bir yorum
Bir yorum alanı: boşken üç satırdır ve etiketi ilk satırın yerinde durur; alana basınca etiket metnin üstüne çıkar ve yer tutucu görünür. Yazıldıkça kutu satır satır uzar, sekiz satıra varınca metin kutunun içinde kayar. Cümle büyük harfle başlar: klavye öyle açılır.
maxLength = 500 sayacı kutunun altına yazar. Alttaki satır comment.text'i yazıldıkça okur.
val comment = rememberTextFieldState()
PantrixFilledTextArea(
state = comment,
modifier = Modifier.fillMaxWidth(),
label = "Yorum",
placeholder = "Ürün hakkında ne düşündünüz?",
supportingText = "Yorumunuz herkese açık olur",
maxLength = 500,
tagKey = "filled_comment"
)
PantrixText(
text = "Satır sayısı: ${comment.text.lines().size}",
color = PantrixTheme.colors.textSecondary
)
Yüksekliği verilen alan
Alana verilen yükseklik alanın bütününündür: Modifier.height(200.dp). Kutu, sayacın bıraktığı yüksekliği doldurur; satırlar yerine o yükseklik geçer ve sığmayan metin kutunun içinde kayar.
İkinci alana heightIn verildi: tutamaç kutuyu yalnızca verilen aralıkta sürükler. Sabit bir yükseklikte tutamacın oynatacağı yer yoktur.
PantrixFilledTextArea(
state = rememberTextFieldState(DELIVERY_NOTES),
modifier = Modifier.fillMaxWidth().height(200.dp),
label = "Teslimat talimatı",
showClearButton = true,
maxLength = 400,
tagKey = "filled_instructions"
)
PantrixFilledTextArea(
state = rememberTextFieldState(),
modifier = Modifier.fillMaxWidth().heightIn(max = 320.dp),
label = "Ek not",
supportingText = "Tutamaçla en çok 320dp'ye kadar uzar",
tagKey = "filled_extra_note"
)
private const val DELIVERY_NOTES =
"Apartmanın arka kapısını kullanın; ön kapının zili çalışmıyor. Asansör cuma günleri bakımda olur, merdivenden " +
"üçüncü kata çıkın. Evde yoksam paketi kapıcıya bırakabilirsiniz, adı Hasan Bey. Teşekkürler!"
Yumuşak sınır ve sayaç
Sınır yumuşaktır: metin 140 karakteri geçebilir. Geçince sayaç ne kadar geçtiğini sözle yazar ("6 karakter fazla"), sayaç ve çerçeve hata rengine döner ve alan ekran okuyucuya "Çok uzun" hatasıyla söylenir. Uzun bir metni yapıştır: bütünüyle alınır, istediğin yerden kısaltabilirsin.
Ekran okuyucu açıkken yaz ve dur: sayaç, yazma durduktan sonra bir kez söylenir.
PantrixFilledTextArea(
state = rememberTextFieldState(ALMOST_A_POST),
modifier = Modifier.fillMaxWidth(),
label = "Gönderi",
supportingText = "En çok 140 karakter",
minLines = 2,
maxLength = 140,
// Varsayılan: metin sınırı geçebilir.
overLimit = TextLimit.Allow,
tagKey = "filled_post"
)
private const val ALMOST_A_POST =
"Yeni sürüm yayında! Karanlık tema, daha hızlı arama ve çevrimdışı mod geldi. Görüşlerinizi bekliyoruz; " +
"yorumlarınız yol gösterir."
Aşılamayan sınır, metni String olan alan
overLimit = TextLimit.Block sınırı aşacak değişikliği bütünüyle geri çevirir: yazı sınırda durur, sığmayan bir yapıştırma hiç alınmaz.
Bu alan metnini String olarak tutar: value ve onValueChange. Sınırı aşan değişiklik onValueChange'e hiç sorulmaz. Altındaki metin alanı ne kadar kaydığını söylemediği için bu biçimin kutusunda çubuk yoktur.
var reason by remember { mutableStateOf("") }
PantrixFilledTextArea(
value = reason,
onValueChange = { reason = it },
modifier = Modifier.fillMaxWidth(),
label = "İade nedeni",
placeholder = "Kısaca yazın",
minLines = 2,
maxLines = 4,
maxLength = 80,
overLimit = TextLimit.Block,
tagKey = "filled_return_reason"
)
Ctrl/Cmd+Enter ile göndermek
onSubmit donanım klavyesinde Ctrl+Enter ya da Cmd+Enter ile çağrılır; Enter tek başına yeni satır açar. Yazılım klavyesinde bu tuşlar olmadığı için yanında bir "Gönder" düğmesi de var. Bir mesaj yaz ve Ctrl+Enter'a bas: uygulamanın snackbar'ı mesajın gönderildiğini söyler ve alan boşalır.
Gönderme olay olarak bildirilir (submit); yazılan metin hiç bildirilmez.
val snackbars = LocalPantrixSnackbars.current
val scope = rememberCoroutineScope()
val message = rememberTextFieldState()
val send = {
if (message.text.isNotBlank()) {
scope.launch { snackbars?.show(message = "Mesaj gönderildi", tagKey = "filled_message_sent") }
message.clearText()
}
}
PantrixFilledTextArea(
state = message,
modifier = Modifier.fillMaxWidth(),
label = "Mesaj",
placeholder = "Ctrl+Enter ya da Cmd+Enter ile gönderin",
minLines = 2,
maxLines = 6,
onSubmit = send,
tagKey = "filled_message"
)
PantrixButton(text = "Gönder", onClick = send, tagKey = "filled_send_message")
Forma bağlı alan
field alan PantrixFilledTextArea değerini, hatasını ve adını formdaki alanından alır: tagKey verilmez, alanın id'si otomasyon anahtarıdır (FilledTextArea_<id>). form verilince Ctrl+Enter ya da Cmd+Enter formu "Kaydet" düğmesi üzerinden gönderir.
Sınır yumuşaktır, ama form sınırı aşan metinle gönderilmez: alan "Çok uzun" hatasına düşer, sayaç ne kadar fazla olduğunu söyler ve odak alana gider. Alanı boş bırakıp ya da 160 karakteri geçip "Kaydet"e bas.
val snackbars = LocalPantrixSnackbars.current
val scope = rememberCoroutineScope()
val form = rememberFormState()
PantrixFilledTextArea(
field = form.field("filled_bio", initial = "", Rules.notBlank("Kendinizi birkaç cümleyle anlatın")),
modifier = Modifier.fillMaxWidth(),
form = form,
label = "Hakkımda",
supportingText = "Profilinizde görünür",
maxLength = 160
)
PantrixButton(
text = "Kaydet",
onClick = {
scope.launch { form.submit { snackbars?.show(message = "Profil kaydedildi", tagKey = "filled_bio_saved") } }
},
form = form,
tagKey = "filled_save_bio"
)
Devre dışı ve salt okunur
enabled = false alanı temanın devre dışı renkleriyle çizer: alan odak almaz, yazılamaz, tutamacı yoktur ve ekran okuyucuya devre dışı olduğu söylenir.
readOnly = true yalnızca değiştirmeyi kapatır: alan odaklanır, metni seçilir, kopyalanır ve kaydırılır; tutamaçla uzatılıp okunabilir.
PantrixFilledTextArea(
state = rememberTextFieldState("Siparişiniz kargoya verildi; not eklenemez."),
modifier = Modifier.fillMaxWidth(),
enabled = false,
label = "Kargo notu",
minLines = 2,
tagKey = "filled_shipping_note"
)
PantrixFilledTextArea(
state = rememberTextFieldState(RETURN_POLICY),
modifier = Modifier.fillMaxWidth(),
readOnly = true,
label = "İade koşulları",
maxLines = 4,
tagKey = "filled_return_policy"
)
private const val RETURN_POLICY =
"Ürünü teslim aldığınız günden itibaren 14 gün içinde iade edebilirsiniz. Ürün kullanılmamış, etiketleri " +
"sökülmemiş ve orijinal ambalajında olmalıdır. İade kargo ücreti tarafımızca karşılanır. Ücretiniz, ürün " +
"depomuza ulaştıktan sonra 3 iş günü içinde ödeme yaptığınız karta geri yatırılır."
Kendi renkleri ve stili
colors ve style dolgulu metin alanınınkilerdir: FilledTextFieldColors ve FilledTextFieldStyle. Verilen renkler kullanılır, verilmeyenler temadaki rolünde kalır. İlk alanın odaktaki çerçevesi, imleci ve kaydırma çubuğu uygulamanın kendi morudur; tutamaç ve temizleme düğmesi ikon rengini alır.
İkinci alanın stili kutuyu ShapeRole.Large ile daha yuvarlak çizer ve iç boşluğunu büyütür.
val own = ownColors()
PantrixFilledTextArea(
state = rememberTextFieldState(DELIVERY_NOTES),
modifier = Modifier.fillMaxWidth(),
label = "Not",
showClearButton = true,
maxLines = 4,
colors = FilledTextFieldColors(
focusedOutline = own.color,
cursor = own.color,
icon = own.color,
scrollBar = own.color
),
tagKey = "filled_own_colors"
)
PantrixFilledTextArea(
state = rememberTextFieldState(),
modifier = Modifier.fillMaxWidth(),
label = "Açıklama",
style = FilledTextFieldStyle(shape = ShapeRole.Large, horizontalPadding = 20.dp, verticalPadding = 16.dp),
tagKey = "filled_own_style"
)
private const val DELIVERY_NOTES =
"Apartmanın arka kapısını kullanın; ön kapının zili çalışmıyor. Asansör cuma günleri bakımda olur, merdivenden " +
"üçüncü kata çıkın. Evde yoksam paketi kapıcıya bırakabilirsiniz, adı Hasan Bey. Teşekkürler!"
Boyutlandırma tutamacı
Masaüstünde ve web'de kutunun alt köşesindeki tutamacı sürükle: kutu uzar ya da kısalır, işaretçi yukarı-aşağı boyutlandırma okuna döner. Sürüklenen kutu o yükseklikte kalır, metniyle büyümez; en az satırından da kısa olmaz. Telefonda tutamaç yoktur.
İkinci alanda resizable = false: tutamaç yok, kutu yalnızca metniyle büyür.
PantrixFilledTextArea(
state = rememberTextFieldState(),
modifier = Modifier.fillMaxWidth(),
label = "Toplantı notları",
supportingText = "Alt köşedeki tutamaçla uzatın",
tagKey = "filled_meeting_notes"
)
PantrixFilledTextArea(
state = rememberTextFieldState(),
modifier = Modifier.fillMaxWidth(),
label = "Kısa not",
minLines = 2,
maxLines = 4,
resizable = false,
tagKey = "filled_short_note"
)
Sağdan sola
Sağdan sola bir düzende ikon ve temizleme düğmesi yer değiştirir, tutamaç alt köşenin soluna geçer ve kaydırma çubuğu kutunun solunda durur: satırın sonu oradadır. Her paragraf yönünü kendi ilk harfinden alır.
CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Rtl) {
PantrixFilledTextArea(
state = rememberTextFieldState(ARABIC_NOTE),
modifier = Modifier.fillMaxWidth(),
label = "ملاحظة",
leadingIcon = {
PantrixIcon(
imageVector = PantrixIcons.Person,
contentDescription = null,
size = PantrixTheme.style(FilledTextFieldStyle).iconSize
)
},
showClearButton = true,
maxLines = 3,
maxLength = 200,
tagKey = "filled_arabic_note"
)
}
private const val ARABIC_NOTE = "يرجى ترك الطرد عند البواب إذا لم أكن في المنزل. شكراً لكم!"
API
state
Dolgulu metin kutusu: birkaç satırlık metin için bir alan; bir yorum, bir mesaj ya da bir not. Dolgulu kutusu yazıldıkça uzar, sonra kayar. Etiketi kutunun içindedir; altında yardım metni ya da bir hatanın mesajı ve karakterlerinin sayacıyla birlikte gelir.
| 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 ve satırlarının yerine geçer: kutu, yardım metninin bıraktığı yüksekliği doldurur ve metni içinde kayar. Tutamaç kutuyu yalnızca böyle bir yüksekliğin içinde oynatır; bu yüzden sürüklenecek bir alana height değil heightIn verilir. |
enabled | Boolean | true | Alana yazılıp yazılamayacağı. Yazılamayan alan odak almaz, devre dışı renklerle çizilir, tutamacı yoktur ve devre dışı olduğunu söyler. |
readOnly | Boolean | false | Metnin salt okunur olup olmadığı: alan yine odaklanır, metni seçilir, kopyalanır, kaydırılır ve sürüklenip uzatılır. |
label | String? | null | Alanın ne için olduğu, kutunun içinde: alan boşken ve odakta değilken ilk satırın yerinde, yoksa metnin üstünde. Ekran okuyucu için alanın adıdır. |
placeholder | String? | null | Kutu boşken içinde gösterilir. Etiket değildir: kullanıcı yazmaya başlar başlamaz kaybolur. |
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ığı: çerçeve, yardım metni ve imleç danger rolüne döner ve ekran okuyucuya bildirilir. Yumuşak bir maxLength'i geçen metin de hatalı çizilir. |
leadingIcon | (@Composable () -> Unit)? | null | Metnin önünde, ilk satırının hizasında durur ve ikincil yazı rengindedir. Yuva içine konanı boyutlandırmaz: PantrixIcon(size = PantrixTheme.style(FilledTextFieldStyle).iconSize) platformun boyutundadır. |
trailingIcon | (@Composable () -> Unit)? | null | Metnin arkasında, ilk satırının hizasında ve temizleme düğmesinden sonra durur. |
showClearButton | Boolean | false | Alana yazılabildiği ve alan boş olmadığı sürece, ilk satırın hizasında alanı boşaltan bir düğme gösterir. Düğme imleci alanda bırakır. Tab durağı değildir; ekran okuyucu ona yine de bir düğme olarak ulaşır. |
minLines | Int | 3 | Kutunun en az kaç satır yüksekliğinde olduğu: boşken ve sürüklendiğinde en kısa hâlinde. En az bir. |
maxLines | Int | 8 | Metin kutunun içinde kaymaya başlamadan önce kutunun metniyle kaç satıra kadar uzadığı. minLines'tan az olamaz: ikisi eşitse kutu yüksekliğini korur. |
resizable | Boolean | true | Kutunun alt köşesindeki bir tutamacın onu sürükleyerek uzatıp kısaltıp kısaltmadığı. Yalnızca işaretçiyle kullanılan platformlarda, masaüstünde ve tarayıcıda: telefonda kutunun üstündeki parmak metnini kaydırır. |
maxLength | Int? | null | Metnin tutması gereken en çok karakter sayısı: karakterler String.length'in saydığı gibi sayılır, bu yüzden bir emoji iki sayılabilir. Onu aşan bir değişikliğin ne olacağını overLimit söyler. Pozitif olmalıdır. |
overLimit | TextLimit | TextLimit.Allow | maxLength'i aşan bir değişikliğin ne olacağı: TextLimit.Allow onu alır ve metnin çok uzun olduğunu gösterir, TextLimit.Block onu bütünüyle geri çevirir. |
showCharacterCount | Boolean | true | maxLength verilmişken kutunun altında sayacı gösterir: 120/500, sınırın ötesinde de ne kadar geçtiğini, 12 karakter fazla. Ekran okuyucuya yazma durunca, sınırda ve sınırın ötesinde söylenir. |
onSubmit | (() -> Unit)? | null | Donanım klavyesinde Ctrl ile Enter ya da Cmd ile Enter'a basılınca çağrılır: metin gönderilir. Null iki tuşu da alana bırakır. Gönderme bildirilir, metin hiçbir zaman bildirilmez. |
keyboardOptions | KeyboardOptions | KeyboardOptions(capitalization = KeyboardCapitalization.Sentences) | Klavyenin türü, büyük harfleri ve düzeltmeleri: aksi söylenmedikçe cümle büyük harfle başlar. Burada ne verilirse verilsin klavyenin eylemi her zaman yeni satırdır. |
inputTransformation | InputTransformation? | null | Kullanıcı yazarken metne ne yapıldığı. Aşılamayan bir maxLength ile ö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. |
style | FilledTextFieldStyle? | null | Bu çağrının kendi stili, dolgulu metin alanınınki: kapsayan her stilin üstünde, yoğunluğun altında. Her platformda yalnızca verdiği alanlar değişir. |
colors | FilledTextFieldColors? | null | Bu çağrının kendi renkleri, dolgulu metin alanınınkiler, temanın rollerinin yerine: verdikleri kullanılır, gerisi temanınkiler olarak kalır. Devre dışı bir alan ne verilirse verilsin temanın devre dışı renkleriyle çizilir. |
contentDescription | String? | null | Ekran okuyucunun alan için söylediği: label'ı olmayan alanın adı. Aynı şeyi söyleyen bir placeholder o zaman yalnızca göze bırakılır, alan boşken adı iki kez söylenmesin diye. |
tagKey | String? | null | Alanın otomasyon anahtarı: alan FilledTextArea_<tagKey>, temizleme düğmesi FilledTextAreaClear_<tagKey>, tutamacı FilledTextAreaResize_<tagKey> olur. Alan odak aldığını, temizlendiğini ve gönderildiğini bildirir, metnini hiçbir zaman bildirmez. |
interactionSource | MutableInteractionSource? | null | Alanın dışarı taşınan etkileşimleri: odağı, üstündeki fare ve basışları. Bu null olduğunda alan kendi kaynağını tutar. |
value
Metni, çağıranın tuttuğu bir String olan metin kutusu: gösterdiği value'dur ve kullanıcının her değişikliği onValueChange'e sorulur.
| 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ği için yeni metnin bütünüyle, temizleme düğmesi için de boş bir metinle sorulur. | |
modifier | Modifier | Modifier | Alanın bütününün modifier'ı: kutusunun ve kutunun altındakilerin. Verilen yükseklik alanın bütününündür ve satırlarının yerine geçer. |
enabled | Boolean | true | Alana yazılıp yazılamayacağı. Yazılamayan alan odak almaz, devre dışı renklerle çizilir, tutamacı yoktur ve devre dışı olduğunu 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: alan boşken ve odakta değilken ilk satırın yerinde, yoksa metnin üstünde. Ekran okuyucu için alanın adıdır. |
placeholder | String? | null | Kutu boşken, etiket metnin üstüne çıktığında içinde gösterilir. |
supportingText | String? | null | Kutunun altındaki yardım metni. 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ığı: çerçeve, yardım metni ve imleç danger rolüne döner ve ekran okuyucuya bildirilir. Yumuşak bir maxLength'i geçen metin de hatalı çizilir. |
leadingIcon | (@Composable () -> Unit)? | null | Metnin önünde, ilk satırının hizasında durur. |
trailingIcon | (@Composable () -> Unit)? | null | Metnin arkasında, ilk satırının hizasında ve temizleme düğmesinden sonra durur. |
showClearButton | Boolean | false | Alana yazılabildiği ve alan boş olmadığı sürece, ilk satırın hizasında boş bir metin isteyen bir düğme gösterir. Düğme imleci alanda bırakır ve Tab durağı değildir. |
minLines | Int | 3 | Kutunun en az kaç satır yüksekliğinde olduğu. En az bir. |
maxLines | Int | 8 | Metin kutunun içinde kaymaya başlamadan önce kutunun metniyle kaç satıra kadar uzadığı. minLines'tan az olamaz. |
resizable | Boolean | true | İşaretçiyle kullanılan platformlarda, kutunun alt köşesindeki bir tutamacın onu sürükleyerek uzatıp kısaltıp kısaltmadığı. |
maxLength | Int? | null | Metnin tutması gereken en çok karakter sayısı, String.length'in saydığı gibi sayılır. Onu aşan bir değişikliğin ne olacağını overLimit söyler. Pozitif olmalıdır. |
overLimit | TextLimit | TextLimit.Allow | maxLength'i aşan bir değişikliğin ne olacağı: TextLimit.Allow onu ister ve metnin çok uzun olduğunu gösterir, TextLimit.Block onu onValueChange'e sorulmadan geri çevirir. |
showCharacterCount | Boolean | true | maxLength verilmişken kutunun altında sayacı, sınırın ötesinde de ne kadar geçtiğini gösterir. |
onSubmit | (() -> Unit)? | null | Donanım klavyesinde Ctrl ile Enter ya da Cmd ile Enter'a basılınca çağrılır. Null iki tuşu da alana bırakır. |
keyboardOptions | KeyboardOptions | KeyboardOptions(capitalization = KeyboardCapitalization.Sentences) | Klavyenin türü, büyük harfleri ve düzeltmeleri. Burada ne verilirse verilsin klavyenin eylemi her zaman yeni satırdır. |
style | FilledTextFieldStyle? | null | Bu çağrının kendi stili, dolgulu metin alanınınki: kapsayan her stilin üstünde, yoğunluğun altında. |
colors | FilledTextFieldColors? | null | Bu çağrının kendi renkleri, dolgulu metin alanınınkiler, temanın rollerinin yerine. Devre dışı bir alan ne verilirse verilsin temanın devre dışı renkleriyle çizilir. |
contentDescription | String? | null | label'ı olmayan alan için ekran okuyucunun söylediği. |
tagKey | String? | null | Alanın otomasyon anahtarı: alan FilledTextArea_<tagKey>, temizleme düğmesi FilledTextAreaClear_<tagKey>, tutamacı FilledTextAreaResize_<tagKey> olur. Alan odak aldığını, temizlendiğini ve gönderildiğini bildirir, metnini hiçbir zaman bildirmez. |
interactionSource | MutableInteractionSource? | null | Alanın dışarı taşınan etkileşimleri. Bu null olduğunda alan kendi kaynağını tutar. |
field
Bir formun alanına bağlı metin kutusu: metni, hatası ve adı field'dan gelir.
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
field | FormField<String> | Metin kutusunun gösterdiği ve değiştirdiği alan. | |
modifier | Modifier | Modifier | Alanın bütününün modifier'ı. |
form | FormState? | null | Verilince Ctrl ile Enter ya da Cmd ile Enter formu ona kayıtlı düğme üzerinden gönderir: form denetlenir, sonra gönderilir ya da odak ilk hatalı alanına gönderilir. Enter tek başına yeni satır açar. Çağıranın kendi onSubmit'i formun gönderilmesinin 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: ekran okuyucu için alanın adıdır. |
placeholder | String? | null | Kutu boşken içinde gösterilir. |
supportingText | String? | null | Alanın orada gösterecek bir hatası yokken kutunun altındaki yardım metni. |
leadingIcon | (@Composable () -> Unit)? | null | Metnin önünde, ilk satırının hizasında durur. |
trailingIcon | (@Composable () -> Unit)? | null | Metnin arkasında, ilk satırının hizasında ve temizleme düğmesinden sonra durur. |
showClearButton | Boolean | false | Alana yazılabildiği ve alan boş olmadığı sürece alanı boşaltan bir düğme gösterir. |
minLines | Int | 3 | Kutunun en az kaç satır yüksekliğinde olduğu. En az bir. |
maxLines | Int | 8 | Metin kutunun içinde kaymaya başlamadan önce kutunun metniyle kaç satıra kadar uzadığı. minLines'tan az olamaz. |
resizable | Boolean | true | İşaretçiyle kullanılan platformlarda, kutunun alt köşesindeki bir tutamacın onu sürükleyerek uzatıp kısaltıp kısaltmadığı. |
maxLength | Int? | null | Metnin tutması gereken en çok karakter sayısı. Pozitif olmalıdır. |
overLimit | TextLimit | TextLimit.Allow | maxLength'i aşan bir değişikliğin ne olacağı: TextLimit.Allow onu alır ve alanı hataya düşürür, TextLimit.Block onu bütünüyle geri çevirir. |
showCharacterCount | Boolean | true | maxLength verilmişken kutunun altında sayacı, sınırın ötesinde de ne kadar geçtiğini gösterir. |
onSubmit | (() -> Unit)? | null | Donanım klavyesinde Ctrl ile Enter ya da Cmd ile Enter'a basılınca, formun gönderilmesinin yerine çağrılır. |
keyboardOptions | KeyboardOptions | KeyboardOptions(capitalization = KeyboardCapitalization.Sentences) | Klavyenin türü, büyük harfleri ve düzeltmeleri. Burada ne verilirse verilsin klavyenin eylemi her zaman yeni satırdır. |
inputTransformation | InputTransformation? | null | Kullanıcı yazarken metne ne yapıldığı. |
outputTransformation | OutputTransformation? | null | Metnin, değiştirilmeden nasıl gösterileceği. |
style | FilledTextFieldStyle? | null | Bu çağrının kendi stili, dolgulu metin alanınınki: kapsayan her stilin üstünde, yoğunluğun altında. |
colors | FilledTextFieldColors? | null | Bu çağrının kendi renkleri, dolgulu metin alanınınkiler, temanın rollerinin yerine. Devre dışı bir alan ne verilirse verilsin temanın devre dışı renkleriyle çizilir. |
contentDescription | String? | null | label'ı olmayan alan için ekran okuyucunun söylediği. |
interactionSource | MutableInteractionSource? | null | Alanın dışarı taşınan etkileşimleri. Bu null olduğunda 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. |