2009-09-01 7 views
15

Comment faire pour android EditText plus petit que la hauteur par défaut?Comment faire pour android EditText plus petit que la hauteur par défaut?

Si je change la hauteur, je ne peux pas voir mon texte, mais il a un espace supplémentaire en bas.

+1

Cette question 'est peu susceptible d'aider un avenir visitors', ouais! Il y a plus de 40k visites. –

+0

La raison proche n'est certainement pas juste, mais je voudrais quand même voir un exemple de ce qui est le comportement désiré et quel est le comportement actuel, une capture d'écran peut-être. Peut-être qu'au fil des années les normes pour poser des questions ont été améliorées. – Trilarion

Répondre

24

Essayez ceci,

<EditText 
    android:text="Any Text" 
    android:layout_width="fill_parent" 
    android:layout_height="16dp" 
    android:padding="2dp" 
    android:background="#FFF" 
    android:textSize="10dp" 
/> 
+1

cela rend effectivement le edittext plus petit, mais quand je clique dessus, il y aura une ligne orange au milieu. – Jacky

+0

@Jacky: Cela peut être géré en ajoutant un arrière-plan. Essayez avec attribut - android: background = "# FFF" Meilleur - spécifiez un dessinable basé sur XML pour l'arrière-plan, qui peut gérer tous les états (comme le focus) – bhatt4982

+1

Cela semble plutôt piraté. Pour un, vous devriez définir textSize en utilisant la mesure sp, pas dp. –

3

Est-ce une option pour définir explicitement la hauteur?

Si oui, utilisez quelque chose comme

<EditText 
    android:id="@+id/smallEditText" 
    android:layout_width="wrap_content" 
    android:layout_height="10dip"/> 

Vous pouvez réduire la taille de la police, à l'aide android:textSize en XML. Vous pouvez également faire défiler votre contrôle. Edit: Vous n'avez vu que vos captures d'écran, quelle est la disposition dans laquelle vous avez placé EditText? Il peut s'agir de définir des règles de disposition non explicites pour votre contrôle. EditText a un jeu de remplissage par défaut.

+0

J'utilise LinerLayout, en fait rendre ma police de texte plus petite ne résoudra pas le problème – Jacky

7

je n'étais pas vraiment satisfait aucune des réponses là-bas que lorsqu'ils sont combinés, ils contiennent pour la plupart tous les ingrédients de la bonne solution. Mais identifions d'abord quel est le problème. Le problème est que bhatt4982 a déclaré le rembourrage et il a fourni une solution à cela. Définir le rembourrage à ce que vous voulez. Si vous voulez aussi une police plus petite faire quelque chose comme learn_andrd suggère ou quelque chose comme ça

style="@android:style/TextAppearance.Small.Inverse" 

Maintenant, la largeur de l'élément EditText est juste et la taille de la police correspond à celle de votre TextView régulière. La couleur est cependant inversée car le gris clair n'a pas l'air trop beau sur fond blanc. Et cela nous amène au dernier de nos problèmes, l'arrière-plan. Vous devez définir un arrière-plan différent car l'arrière-plan EditText par défaut a une hauteur minimale. Cette hauteur est la hauteur de la hauteur actuelle de l'élément. AFAIK Android ne prend pas en charge la réduction des images d'arrière-plan. Vous devez définir votre propre arrière-plan Drawable pour EditText qui permet des tailles plus petites que celles autorisées par défaut. Sinon, il n'aura aucun effet quoi que ce soit, peu importe ce que vous essayez de définir pour la hauteur ou le rembourrage ou le maring.

P.S. Vous vous demandez peut-être pourquoi ils vous ont rendu si difficile de créer des EditView plus petits ... peut-être que cela a quelque chose à voir avec le fait que, même tel qu'il est, il est très difficile d'utiliser votre doigt pour déplacer le curseur vers un position dans l'élément EditText (par exemple pour corriger une faute de frappe sans tout effacer). Cela deviendra impossible si vous réduisez le texte. Ainsi, vous devriez probablement reconsidérer est ce que vous essayez d'accomplir, vraiment quelque chose qui vaut la peine d'être poursuivi à moins que vous essayez juste de réduire le rembourrage.

0

changer le texte d'édition XML ces deux propriétés

android:layout_height="15dp" 
android:textSize="12sp" 
Questions connexes