material-components / material-components/material-components-android

[MaterialButton] maxLines does not work with 99% of inputType

Aperta
#4,262 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug Widget: Button
Lingua principale
Java
Stelle
17.4k
Fork
3.2k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Description:

I want to display a MaterialButton containing a multi line string, formatted as android:inputType="textCapSentences".

The text is not rendered multi line, only single line. Even though android:maxLines="10" is set.

This android:inputType="textMultiLine" works, but this android:inputType="textMultiLine|textCapSentences" will ignore textCapSentences. Other inputTypes are ignored as well.

Expected behavior:

The text in the button is rendered multi line, while formatting as textCapSentences.

Workaround:
Set max lines in code.

This btn.setMaxLines(10) renders multiline, with textCapSentences formatting. But not if maxLines only set in XML.

Source code:

<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textCapSentences"
android:maxLines="10"
android:text="test\nmultiple\lines" />

Android API version:
21+

Material Library version:

Both versions experience the same behavior.
1.12.0
1.13.0-alpha05

Device:

Emulator 30

To help us triage faster, please check to make sure you are using the latest version of the library.

We also happily accept pull requests.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia riproducendo il problema con l'XML MaterialButton fornito su Android API 21+ e confronta XML android:maxLines="10" con btn.setMaxLines(10). Traccia il modo in cui MaterialButton gestisce inputType e maxLines durante l'inflazione XML. Il lavoro è completato quando il testo multilinea viene visualizzato, mentre textCapSentences e le altre formattazioni di inputType continuano a funzionare.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
mobile
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.