Подтвердить что ты не робот

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

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

<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). Могу ли я сделать это, так что обе кнопки могут быть даже размером, независимо от размера экрана?

4b9b3361

Ответ 1

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

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

Ответ 2

Если вы хотите сделать все кнопки шириной самой широкой кнопки, установка весов не будет делать этого. Скорее всего, вы можете поместить все кнопки в 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>

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

<LinearLayout
    android:id="@+id/layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_weight="1"
        android:text="One" />

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_weight="1"
        android:text="Two" />
</LinearLayout>

Это пример для кнопок равного размера для бок о бок, может быть сделан из предыдущего кода

android:layout_weight 

используется для назначения пространства для кнопок или любого другого количества одинакового количества для каждого дочернего элемента LinearLayout.

Примечание. Он работает только с линейной компоновкой.

Ответ 6

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

работает

Ответ 7

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

Android: layout_width = "0dp"

Android: layout_weight = "0.5"

Ответ 8

Это работает:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <Button
        android:layout_width="0dp"
        android:layout_weight="0.5"
        android:layout_height="wrap_content"
        android:text="my btn 1"/>
    <Button
        android:layout_width="0dp"
        android:layout_weight="0.5"
        android:layout_height="wrap_content"
        android:text="my btn 2"/>
    </LinearLayout>

Ответ 9

Вы можете установить их в линейном макете, вложенном в относительный макет, как это

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    android:orientation="vertical">



        <Button
            android:id="@+id/bestBtn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textStyle="bold"
            android:layout_marginBottom="5dp"
            android:textAllCaps="false"
            android:textSize="16sp"
            android:textColor="@color/grey_light2"
            android:background="@drawable/sharefb_btn"
            android:text="@string/sharefb" />
        <Button
            android:id="@+id/playBtn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/grey_light2"
            android:textAllCaps="false"
            android:textSize="16sp"
            android:layout_marginBottom="50dp"
            android:textStyle="bold"
            android:background="@drawable/puzzle_opening_btn_ncvtelen_3"
            android:text="@string/playagain" />

</LinearLayout>

и вы получите что-то подобное

enter image description here