Ce que je veux faire, c'est ajouter de la marge supérieure/remplissage avant THE TEXT, et non pour le conteneur entier:
<EditText Android:id="@+id/mightyText"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:gravity="left|top"
Android:inputType="textAutoComplete|textMultiLine"
Android:paddingLeft="20dp"
Android:paddingRight="20dp"
Android:paddingBottom="80dp"
Android:background="#fff" />
Une fois que c'est au top, ça marche très bien. J'ai les mêmes rembourrages pour les côtés et le dessus ...
... mais quand je fais défiler, le rembourrage reste collé au conteneur au lieu de remonter avec le texte
Comment puis-je le changer, de sorte qu'il défile avec le texte au lieu d'être toujours visible?
Placez-le dans ScrollView, qui se chargera automatiquement du défilement. EditText ne sera pas responsable de cela, donc son rembourrage fonctionnera comme vous le souhaitez. Essayez le code ci-dessous:
<ScrollView
Android:layout_width="match_parent"
Android:layout_height="wrap_content" >
<EditText Android:id="@+id/mightyText"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:gravity="left|top"
Android:inputType="textAutoComplete|textMultiLine"
Android:paddingLeft="20dp"
Android:paddingRight="20dp"
Android:paddingBottom="80dp"
Android:background="#fff" />
</ScrollView>
Sur ViewGroup, il existe un attribut appelé clipToPadding
. Docs dit: Defines whether the ViewGroup will clip its drawing surface so as to exclude the padding area. This property is set to true by default.
Essayez de trouver quelque chose de similaire dans EditText.
Est-ce que cela doit être un EditText? Si l'utilisateur ne le modifie pas, utilisez un TextView normal avec un remplissage supérieur de 10dp et enveloppez-le dans un ScrollView.
Pour autant que je sache, il n'y a aucun moyen de définir un remplissage interne au sommet d'un EditText.