Pantrix UI

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

Ö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.

ParametreTürVarsayılanNe olduğu
stateTextFieldStateMetin 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() }.
modifierModifierModifierAlanı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.
enabledBooleantrueAlana yazılıp yazılamayacağı. Yazılamayan alan odak almaz, devre dışı renklerle çizilir, tutamacı yoktur ve devre dışı olduğunu söyler.
readOnlyBooleanfalseMetnin salt okunur olup olmadığı: alan yine odaklanır, metni seçilir, kopyalanır, kaydırılır ve sürüklenip uzatılır.
labelString?nullAlanı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.
placeholderString?nullKutu boşken içinde gösterilir. Etiket değildir: kullanıcı yazmaya başlar başlamaz kaybolur.
supportingTextString?nullKutunun 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.
errorBooleanfalseMetnin 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)?nullMetnin ö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)?nullMetnin arkasında, ilk satırının hizasında ve temizleme düğmesinden sonra durur.
showClearButtonBooleanfalseAlana 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.
minLinesInt3Kutunun 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.
maxLinesInt8Metin 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.
resizableBooleantrueKutunun 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.
maxLengthInt?nullMetnin 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.
overLimitTextLimitTextLimit.AllowmaxLength'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.
showCharacterCountBooleantruemaxLength 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)?nullDonanı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.
keyboardOptionsKeyboardOptionsKeyboardOptions(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.
inputTransformationInputTransformation?nullKullanı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.
outputTransformationOutputTransformation?nullMetnin, değiştirilmeden nasıl gösterileceği.
styleFilledTextFieldStyle?nullBu ç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.
colorsFilledTextFieldColors?nullBu ç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.
contentDescriptionString?nullEkran 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.
tagKeyString?nullAlanı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.
interactionSourceMutableInteractionSource?nullAlanı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.

ParametreTürVarsayılanNe olduğu
valueStringAlanın gösterdiği metin.
onValueChange(String) -> UnitKullanı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.
modifierModifierModifierAlanı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.
enabledBooleantrueAlana yazılıp yazılamayacağı. Yazılamayan alan odak almaz, devre dışı renklerle çizilir, tutamacı yoktur ve devre dışı olduğunu söyler.
readOnlyBooleanfalseMetnin salt okunur olup olmadığı: alan yine odaklanır, metni seçilir ve kopyalanır.
labelString?nullAlanı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.
placeholderString?nullKutu boşken, etiket metnin üstüne çıktığında içinde gösterilir.
supportingTextString?nullKutunun altındaki yardım metni. error ile birlikte neyin düzeltileceğini söyleyen mesajdır ve ekran okuyucu onu hata olarak duyurur.
errorBooleanfalseMetnin 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)?nullMetnin önünde, ilk satırının hizasında durur.
trailingIcon(@Composable () -> Unit)?nullMetnin arkasında, ilk satırının hizasında ve temizleme düğmesinden sonra durur.
showClearButtonBooleanfalseAlana 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.
minLinesInt3Kutunun en az kaç satır yüksekliğinde olduğu. En az bir.
maxLinesInt8Metin kutunun içinde kaymaya başlamadan önce kutunun metniyle kaç satıra kadar uzadığı. minLines'tan az olamaz.
resizableBooleantrueİşaretçiyle kullanılan platformlarda, kutunun alt köşesindeki bir tutamacın onu sürükleyerek uzatıp kısaltıp kısaltmadığı.
maxLengthInt?nullMetnin 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.
overLimitTextLimitTextLimit.AllowmaxLength'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.
showCharacterCountBooleantruemaxLength verilmişken kutunun altında sayacı, sınırın ötesinde de ne kadar geçtiğini gösterir.
onSubmit(() -> Unit)?nullDonanı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.
keyboardOptionsKeyboardOptionsKeyboardOptions(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.
styleFilledTextFieldStyle?nullBu çağrının kendi stili, dolgulu metin alanınınki: kapsayan her stilin üstünde, yoğunluğun altında.
colorsFilledTextFieldColors?nullBu ç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.
contentDescriptionString?nulllabel'ı olmayan alan için ekran okuyucunun söylediği.
tagKeyString?nullAlanı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.
interactionSourceMutableInteractionSource?nullAlanı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.

ParametreTürVarsayılanNe olduğu
fieldFormField<String>Metin kutusunun gösterdiği ve değiştirdiği alan.
modifierModifierModifierAlanın bütününün modifier'ı.
formFormState?nullVerilince 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.
enabledBooleantrueAlana yazılıp yazılamayacağı.
readOnlyBooleanfalseMetnin salt okunur olup olmadığı.
labelString?nullAlanın ne için olduğu, kutunun içinde: ekran okuyucu için alanın adıdır.
placeholderString?nullKutu boşken içinde gösterilir.
supportingTextString?nullAlanın orada gösterecek bir hatası yokken kutunun altındaki yardım metni.
leadingIcon(@Composable () -> Unit)?nullMetnin önünde, ilk satırının hizasında durur.
trailingIcon(@Composable () -> Unit)?nullMetnin arkasında, ilk satırının hizasında ve temizleme düğmesinden sonra durur.
showClearButtonBooleanfalseAlana yazılabildiği ve alan boş olmadığı sürece alanı boşaltan bir düğme gösterir.
minLinesInt3Kutunun en az kaç satır yüksekliğinde olduğu. En az bir.
maxLinesInt8Metin kutunun içinde kaymaya başlamadan önce kutunun metniyle kaç satıra kadar uzadığı. minLines'tan az olamaz.
resizableBooleantrueİşaretçiyle kullanılan platformlarda, kutunun alt köşesindeki bir tutamacın onu sürükleyerek uzatıp kısaltıp kısaltmadığı.
maxLengthInt?nullMetnin tutması gereken en çok karakter sayısı. Pozitif olmalıdır.
overLimitTextLimitTextLimit.AllowmaxLength'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.
showCharacterCountBooleantruemaxLength verilmişken kutunun altında sayacı, sınırın ötesinde de ne kadar geçtiğini gösterir.
onSubmit(() -> Unit)?nullDonanım klavyesinde Ctrl ile Enter ya da Cmd ile Enter'a basılınca, formun gönderilmesinin yerine çağrılır.
keyboardOptionsKeyboardOptionsKeyboardOptions(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.
inputTransformationInputTransformation?nullKullanıcı yazarken metne ne yapıldığı.
outputTransformationOutputTransformation?nullMetnin, değiştirilmeden nasıl gösterileceği.
styleFilledTextFieldStyle?nullBu çağrının kendi stili, dolgulu metin alanınınki: kapsayan her stilin üstünde, yoğunluğun altında.
colorsFilledTextFieldColors?nullBu ç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.
contentDescriptionString?nulllabel'ı olmayan alan için ekran okuyucunun söylediği.
interactionSourceMutableInteractionSource?nullAlanı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.

ParametreTürVarsayılanNe olduğu
shapeShapeSpecShapeSpec.UnspecifiedKutunun ş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.
heightDpDp.UnspecifiedKutunun en az yüksekliği.
minWidthDpDp.UnspecifiedKutunun en az genişliği: boş bir alanın, kullanıcı içine yazdıkça genişlemesini önler.
horizontalPaddingDpDp.Unspecifiedİkon olmayan yerde, kutunun kenarı ile etiketi ve metni arasındaki boşluk.
verticalPaddingDpDp.UnspecifiedEtiketin satırının üstündeki ve metnin son satırının altındaki boşluk.
iconPaddingDpDp.UnspecifiedYuvasındaki bir ikonun çevresindeki boşluk.
iconSizeDpDp.UnspecifiedYuvadaki bir ikonun alması gereken boyut. Yuva, içine konanı boyutlandırmaz.
borderWidthDpDp.UnspecifiedKutunun odakta, hatada ve fare üstündeyken aldığı çerçevenin kalınlığı. Dinlenirken çerçevesi yoktur.
textRoleTypeRole?nullMetnin 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:

ParametreTürVarsayılanNe olduğu
containerColorColor.UnspecifiedDinlenirken kutunun dolgusu. Temanın neutral rolünün container'ı.
focusedContainerColorColor.UnspecifiedÇerçeveliyken kutunun dolgusu: odakta ve hatada. Temanın surface rengi.
hoveredOutlineColorColor.UnspecifiedFare üstündeyken çerçeve. Temanın borderHover rengi.
focusedOutlineColorColor.UnspecifiedAlan odaktayken çerçeve. Temanın primary rengi.
errorColorColor.UnspecifiedMetnin 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.
textColorColor.UnspecifiedYazılan metin. Temanın textPrimary rengi.
labelColorColor.UnspecifiedEtiket: hem dinlenirken yazının yerinde, hem yazının üstündeki kendi satırında. Temanın textSecondary rengi.
placeholderColorColor.UnspecifiedYer tutucu. Temanın textSecondary rengi.
supportingTextColorColor.UnspecifiedKutunun altındaki yardım metni ve sayaç. Temanın textSecondary rengi.
iconColorColor.UnspecifiedYuvadaki bir ikonun, kendi rengini vermedikçe çizildiği renk ve temizleme düğmesinin çarpısı. Temanın textSecondary rengi.
cursorColorColor.Unspecifiedİmleç ve onunla birlikte bir seçimin tutamaçları ile zemini. Temanın primary rengi.
scrollBarColorColor.UnspecifiedBirkaç 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.