Почему EditText не расширяется до fill_parent

Я написал код XML, где я хочу, чтобы EditText был расширен, чтобы он соответствовал ширине родителя. Проведя так много времени, я не могу найти способ расширить EditText.

Вот мой 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> 

Что я сделал здесь неправильно. Пожалуйста, помогите мне.

Добавьте дополнительный colomn TextView в каждую строку.

Этот код может вам помочь.

 <?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> 

Вид старого, но я считаю, что мне есть что добавить.

Я считаю, что согласно документации (приведенной ниже) layout_width и layout_height предварительно определены для всех пользователей TableRow.

Вместо этого layout_weight можно использовать для определения ширины / высоты элементов внутри TableRow. То есть, если вы не хотите установить его свойство android: ems и дать ему ширину, основанную на его размере шрифта.

Например:

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

Это создало для меня полноэкранный широкий текст EditText в TableRow.

Вот цитата из документации TableRow:

Детям TableRow не нужно указывать атрибуты layout_width и layout_height в файле XML. TableRow всегда обеспечивает, чтобы эти значения были соответственно MATCH_PARENT и WRAP_CONTENT.

Проблема, как известно, в том, что на самом деле этого не происходит. Я подозреваю, что layout_width получает «WRAP_CONTENT».

Пожалуйста, добавьте android:stretchColumns="0" на ваш TableLayout

Не уверен, что серьезно.

У вас минимальная ширина вашего EditText ( minWidth ) больше, чем максимальная ширина ( maxWidth ), и вы не layout_width атрибут layout_width (который вы должны установить match_parent ).

Я думаю, что вам не хватает атрибута android:orientation от LinearLayout

Во-вторых, если это все, что вам нужно, вы можете избежать использования TableLayout и использовать только один LinearLayout с android:orientation="vertical" и все остальные три View в нем.

Вы можете использовать layout_weight="1" в 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" >

Intereting Posts
Ресурсы служб Google Play не найдены. Проверьте конфигурацию проекта, чтобы включить ресурсы Замена для устаревшего кода Facebook для Android Android: setContentView и LayoutInflater Android: производительность отладки и выпуска (SDK) Исходный фрагмент списка списка Viewview nullpointerexception Тестирование устройств Android – проблемы с разрешением и проверкой Фон с разрезом по краю / пользовательская форма фона Есть ли реальные последствия для производительности Handlers vs Threads? Как правильно настроить IntelliJ IDEA для обработки аннотаций Android? BackupManager, не вызывающий резервный транспорт Как предотвратить java.lang.IllegalStateException, сгенерированный MediaCodec.dequeueInputBuffer Флеш-приложения для Android без установки adobe air Подходит ли Glide каждый запрос на изображение? Нагрузка при повторном просмотре очень медленная при прокрутке Android – рисовать растровое изображение как один цвет ViewFlipper внутри Remoteview showNext () и showPrevious () не работает