Pourquoi EditText ne se développe pas pour remplir_parent

J'ai écrit un code XML, où je souhaite que le EditText soit étendu pour s'adapter à la largeur parentale. Après avoir passé tellement de temps, je ne trouve pas un moyen d'étendre EditText.

Voici mon XML:

<?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TableRow android:layout_marginLeft="10dp" android:layout_marginBottom="15dip"> <TextView android:text="Comment" android:layout_width="match_parent" android:textStyle="bold" android:padding="3dip" /> </TableRow> <TableRow android:layout_marginLeft="10dp" android:layout_marginBottom="15dip"> <EditText android:id="@+id/EditText02" android:layout_height="wrap_content" android:lines="5" android:gravity="top|left" android:inputType="textMultiLine" android:scrollHorizontally="false" android:minWidth="10.0dip" android:maxWidth="5.0dip"/> </TableRow> <TableRow android:layout_marginLeft="10dp" android:layout_marginBottom="15dip" android:gravity="center"> <Button android:id="@+id/cancel" android:text="Next" /> </TableRow> </TableLayout> </LinearLayout> 

Ce que j'ai fait mal ici. Aidez-moi, s'il vous plaît.

  • Définir la bannière AdMob pour correspondre à l'épaisseur parent par XML
  • Comment puis-je utiliser layout_width en utilisant le fichier de ressources?
  • Existe-t-il un moyen de remplir parent moins un numéro fixe dans Android RelativeLayout?
  • Mise à l'échelle d'une image à une largeur maximale disponible, maintien du rapport d'aspect et évitement de l'espace supplémentaire ImageView
  • Android 3 - Ajout d'un fragment à un LinearLayout: fill_parent ne fonctionne pas
  • 7 Solutions collect form web for “Pourquoi EditText ne se développe pas pour remplir_parent”

    Ajouter un colomn supplémentaire de TextView dans chaque ligne.

    Ce code peut vous aider.

     <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1" android:orientation="vertical"> <TableRow android:layout_width="fill_parent" android:layout_marginLeft="10dp" android:layout_marginBottom="15dip"> <TextView android:text="" /> <TextView android:text="Comment" android:layout_width="match_parent" android:layout_marginRight="10dp" android:textStyle="bold" android:padding="3dip" /> </TableRow> <TableRow android:layout_marginLeft="10dp" android:layout_marginBottom="15dip"> <TextView android:text="" /> <EditText android:id="@+id/EditText02" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="20dp" android:lines="5" android:gravity="top|left" android:inputType="textMultiLine" android:scrollHorizontally="false" /> </TableRow> <TableRow android:layout_marginLeft="10dp" android:layout_marginBottom="15dip" android:gravity="center"> <TextView android:text="" /> <Button android:id="@+id/cancel" android:layout_marginRight="10dp" android:text="Next" /> </TableRow> </TableLayout> </LinearLayout> 

    Un peu vieux, mais je crois avoir quelque chose à ajouter.

    Je crois que selon la documentation (citée ci-dessous), layout_width et layout_height sont prédéterminés pour tous les enfants TableRow.

    Au lieu de cela, le poids de la disposition peut être utilisé pour déterminer la largeur / hauteur des éléments dans un TableRow. C'est-à-dire, à moins que vous ne souhaitiez configurer la propriété android: ems et lui donner une largeur en fonction de sa taille de police.

    Par exemple:

     <TableRow android:id="@+id/tableRow1" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" > <EditText android:id="@+id/editText1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:hint="@string/place" android:inputType="textPersonName" > <requestFocus /> </EditText> </TableRow> 

    Cela a produit pour moi un édition complète en plein écran dans un TableRow.

    Voici une citation de la documentation de TableRow:

    Les enfants d'un TableRow n'ont pas besoin de spécifier les attributs layout_width et layout_height dans le fichier XML. TableRow applique toujours ces valeurs pour être respectivement MATCH_PARENT et WRAP_CONTENT.

    Le problème est, comme nous le savons, qu'en réalité, cela n'arrive pas. Je soupçonne que layout_width reçoit également "WRAP_CONTENT".

    Veuillez ajouter android:stretchColumns="0" à votre TableLayout

    Je ne sais pas sérieux.

    Vous avez la largeur minimale de votre EditText ( minWidth ) définie plus grande que sa largeur maximale ( maxWidth ), et vous ne lui avez pas attribué l'attribut layout_width (que vous devez définir pour match_parent ).

    Je pense que vous manquez l'attribut d' android:orientation LinearLayout

    Deuxièmement, si ceci est tout ce dont vous avez besoin, vous pouvez éviter d'utiliser un TableLayout et n'utilisez qu'un seul LinearLayout avec android:orientation="vertical" et tous les trois autres éléments.

    Vous pouvez utiliser layout_weight="1" dans edittextview.

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/back" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" -->> change to 0dip android:paddingRight="@dimen/activity_horizontal_margin" -->> change to 0dip android:paddingTop="@dimen/activity_vertical_margin" tools:context=".StartUp" >

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.