2013-06-13 2 views
0

Я пытаюсь найти aswer для этого, но я не мог.android - EditText width внутри TableRow

У меня есть TableLayout с двумя TableRow s. В первом есть TextView, что составляет около 150dp ширины. Во втором - EditText, ширина которого должна быть около 40dp, но проблема в том, что ширина EditText вынуждена соответствовать ширине TextView, которая выше.

Мой вопрос в том, есть ли способ избежать этого? Я имею в виду, чтобы сделать ширину EditText40dp, независимо от того, что такое ширина TextView, не создавая другой tablelayout?

Заранее спасибо. Извините за мой ограниченный английский.

В случае, если кто имеет эту проблему, я решил его с помощью следующего:

Предположив, что у вас есть строки таблицы с двумя или более элементами, положить layout_width в match_parent, то первый элемент layout_weight 1 и второй element to 2. Это заполнит всю строку двумя элементами, а второй будет иметь двойной размер первого. Если у вас более двух элементов, и один должен быть больше других, используйте вес 2 на этом элементе и вес 1 на других.

Надеюсь помочь кому-то.

+0

я хотел бы предложить что-то с весами, как @The Dark Рыцарь внизу. –

+0

Является ли макет, созданный динамически или из XML? В XML вы можете использовать android: layout_width = "40dp" в EditText. Если вы добавите EditText из кода, вы должны использовать объект LayoutParams и использовать метод addView (View, LayoutParams) класса ViewGroup. С помощью объекта LayoutParams вы можете указать размер представления в макете. – viplezer

+0

В этом проблема, установка ширины указателя для меня не работает. Он по-прежнему меняет ширину, чтобы соответствовать TextView. – Ariel

ответ

0

Вы можете сделать еще один родитель для EditText, как LinearLayout,

Таким образом, вы получите: TableLayout-> TableRow-> LinearLayout-> EditText

+1

Я хотел бы избежать использования большего количества макетов. Я должен указать в своем вопросе, что мне приходилось добавлять строки нестандартно. – Ariel

Смежные вопросы