2016-07-20 2 views
3

это мой xml, и это результат, но хотелось бы, чтобы 3 кнопки выше (вместе) занимали один и тот же размер самой большой кнопки, что-то вроде этого изображения, где я должен меняться мой макет?Как сделать кнопки одинакового размера

Это то, что у меня есть:

this is the result

И это то, что я хочу:

but I would like to stay so

Мой XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="@android:color/transparent" 
       android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="10dp" 
     android:background="#FFA500" 
     android:orientation="vertical"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_margin="10dp" 
      android:background="#FFA500" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/textoPoup1" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:text="1. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." 
       android:textColor="@android:color/white"/> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 

       <Button 
        android:id="@+id/nota0" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="0"/> 

       <Button 
        android:id="@+id/nota40" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="50"/> 

       <Button 
        android:id="@+id/nota80" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="90"/> 
      </LinearLayout> 


      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 

       <Button 
        android:id="@+id/nota120" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="110"/> 

       <Button 
        android:id="@+id/nota160" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="170"/> 

       <Button 
        android:id="@+id/nota200" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="300"/> 
      </LinearLayout> 

      <Button 
       android:id="@+id/proxima1" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:text="Next"/> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 
+3

Попробуйте его с помощью layout_weight –

+1

каждые маленькие кнопки должны быть как:

+0

раскроя является анти-шаблон, потому что это плохо для выступлений. –

ответ

4

Это можно легко сделать используя layout_weight для каждой из кнопок, как это:

<Button 
     android:id="@+id/nota0" 
     android:layout_width="0" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="0"/> 

Таким образом, каждая кнопка будет принимать ровно 1/3 от ширины его родителей, который занимает всю ширину экрана. Вы можете по-прежнему играть с полями и отступом, чтобы сделать промежуток между кнопками по своему усмотрению.

+0

большое вам спасибо! –

+0

Не проблема. – Vucko

2

В LinearLayout с 3-мя кнопками добавить

android:orientation="horizontal" 

Теперь для всех трех кнопок, установленных в этом:

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

Что-то вроде этого:

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <Button 
       android:id="@+id/nota0" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:text="0"/> 

      <Button 
       android:id="@+id/nota40" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:text="50"/> 

      <Button 
       android:id="@+id/nota80" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:text="90"/> 
     </LinearLayout> 

Затем вы можете добавить надлежащее Поля:

Для первой кнопки добавьте leftMargin как xdp и rightMargin как x/2dp. Для второй кнопки добавить левое и правое поле как xdp. Для третьей кнопки добавьте левое поле как x/2dp и правое поле как xdp.

1

В linearlayout мы можем указать атрибут layout_weight, который используется для увеличения веса для каждого дочернего элемента в linearlayout, если layout_width = "0dp", он рассчитает ширину этого элемента по весу или если layout_height = "0dp" it будет вычислять высоту этого элемента по весу.

Требуется усреднить вес всего элемента i.e, если весь элемент имеет layout_weight = "1", он назначит 1/3 ширины его родительского элемента.

Так что в вашем случае, если вы хотите одинаково размер кнопки так нужно присвоить одинаковый вес для всех элементов и layout_width = «0dp»

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@android:color/transparent" 
      android:orientation="vertical"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" 
    android:background="#FFA500" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="10dp" 
     android:background="#FFA500" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/textoPoup1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="1. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." 
      android:textColor="@android:color/white"/> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <Button 
       android:id="@+id/nota0" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:text="0"/> 

      <Button 
       android:id="@+id/nota40" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:text="50"/> 

      <Button 
       android:id="@+id/nota80" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:text="90"/> 
     </LinearLayout> 


     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <Button 
       android:id="@+id/nota120" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:text="110"/> 

      <Button 
       android:id="@+id/nota160" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:text="170"/> 

      <Button 
       android:id="@+id/nota200" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:text="300"/> 
     </LinearLayout> 

     <Button 
      android:id="@+id/proxima1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="Next"/> 
    </LinearLayout> 
</LinearLayout> 
</LinearLayout> 
Смежные вопросы