Установите две кнопки одинаковой ширины независимо от размера экрана?

Хорошо, у меня есть две кнопки в линейном макете:

<LinearLayout android:id="@+id/linearLayout1" android:layout_height="wrap_content" android:layout_width="fill_parent"> <Button android:id="@+id/aktiviraj_paket" android:text="Aktiviraj" android:layout_height="40sp" android:layout_width="160sp" android:background="@drawable/my_border3" android:onClick="myClickHandle"></Button> <Button android:id="@+id/deaktiviraj_paket" android:text="Deaktiviraj" android:layout_height="40sp" android:layout_width="fill_parent" android:background="@drawable/my_border3" android:onClick="myClickHandle"> </Button> </LinearLayout> 

Так вот, если я использую fill parent на обеих кнопках, они один друг на друга, поэтому я сделал первую кнопку ширины 160sp, а второй – fill_parent. Если это показано на 4-дюймовом экране или меньше, кнопки имеют одинаковый размер, но если я попробую это на планшете (10 дюймов), первая кнопка останется шириной 160 с, а вторая растянется до конца экрана (потому что fill_parent). Могу ли я сделать это, так что обе кнопки могут быть даже размером, независимо от размера экрана?

Используйте android:layout_weight="1" на обеих android:layout_weight="1" s. Установите android:layout_width="0dp" на обоих. Поскольку обе кнопки теперь имеют одинаковое взвешивание, теперь у каждой из них будет половина ширины родителя.

Вы можете узнать больше здесь: http://developer.android.com/guide/topics/ui/layout/linear.html

Если вы хотите сделать все кнопки шириной самой широкой кнопки, установка веса не будет делать это. Скорее всего, вы можете поместить все кнопки в TableLayout:

  <TableLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/short_text" /> </TableRow> <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/enter_manually" /> </TableRow> </TableLayout> 

В этом макете будут показаны две кнопки, одна поверх другой, одинаковая ширина.

 Display display=getWindowManager().getDefaultDisplay(); int width=display.getWidth(); btn1.setWidth(width/2); btn2.seTwidth(width/2); 

Установите что-нибудь в xml-файле, затем сначала найдите ширину устройства, затем установите ширину наполовину на обе кнопки. Теперь на каждом устройстве они будут выглядеть точно так же

Для каждой кнопки:

 android:layout_weight="0.5" android:layout_width="0dp" 
 android:layout_weight="0.5" android:layout_width="0dp 

работает

Установите android: layout_weight = "1" в компоновке. Линейный макет должен иметь android: ориентация установлена ​​как горизонтальная. И тогда внутренние кнопки должны иметь следующее:

андроид: layout_width = "0dp"

Android: layout_weight = "0.5"