2013-10-21 6 views
2

Я создал приложение с кнопками «того же размера», и я добавил к нему изображения, которые также имеют одинаковый размер. Ниже приведен мой кодКнопки не имеют одинакового размера

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".HomeScreen" > 

    <TableLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:stretchColumns="*" 
     android:weightSum="4" > 

     <TableRow 
      android:id="@+id/tableRow1" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" > 

      <Button 
       android:id="@+id/fBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/fStr" /> 

      <Button 
       android:id="@+id/rBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/rStr" /> 

      <Button 
       android:id="@+id/sBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/sStr" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow2" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" > 

      <Button 
       android:id="@+id/cBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/cStr" /> 

      <Button 
       android:id="@+id/aBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/aStr" /> 

      <Button 
       android:id="@+id/lBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/lStr" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow3" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" > 

      <Button 
       android:id="@+id/oBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/oStr" /> 

      <Button 
       android:id="@+id/tBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/tStr" /> 

      <Button 
       android:id="@+id/eBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/eStr" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow4" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" > 

      <Button 
       android:id="@+id/dBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/dStr" /> 

      <Button 
       android:id="@+id/hBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/hStr" /> 

      <Button 
       android:id="@+id/aBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/aStr" /> 
     </TableRow> 
    </TableLayout> 

</RelativeLayout> 

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

enter image description here

Ниже как получить отображается в эмуляторе

enter image description here

Как вы можете видеть, первый столбец и третий столбец больше, чем второй колонка. Но то, что я ожидал, это столбцы одного размера.

Ниже мой strings.xml файл в случае, если это полезно

<?xml version="1.0" encoding="utf-8"?> 
<resources> 


<string name="fStr">Fffffffff</string> 
<string name="rStr">Rrrrrr</string> 
<string name="sStr">Ssssss  </string> 
<string name="cStr">Ccccccc</string> 
<string name="aStr">Aaaaaaa</string> 
<string name="lStr">Lllll</string> 
<string name="oStr">Oooooooooooo</string> 
<string name="tStr">Ttttt</string> 
<string name="eStr">Eeeeee</string> 
<string name="dStr">Dddddddddd</string> 
<string name="cStr">Cccccccc</string> 
<string name="hStr">Hhhh</string> 
<string name="aStr">Aaaaaaaaaa aaaa</string> 

</resources> 

Как я могу решить эту проблему?

+1

для кнопки вы используете свойство веса и widht = "wrap_content". Попробуйте с layout_width = "0dip" вместо wrap_content – Blackbelt

ответ

3

Попробуйте установить layout_width к 0dp, который устранили эту проблему для меня прежде.

+0

yep, установив его на '0dp' или' 0dip', чтобы вместо этого использовать весы. Кроме того, вы переопределяете вес. +1 – Doomsknight

+0

Вы имеете в виду «layout_width»? – Carnal

+0

Спасибо за ответ. Но ширина макета что? –

1

Изменить все Buttonandroid:layout_width к fill_parent

android:layout_width="fill_parent" 
0

попробовать этот способ:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:orientation="vertical" > 

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

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:orientation="vertical" > 

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

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:orientation="vertical" > 

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

0

Изменить расположение: ширину атрибут строки таблицы с заполняющим родителем

android:layout_width="fill_parent" 
+0

, в котором компания, с которой вы работаете, m также из близлежащего мохали – Rohit

+0

Microsoft ...... – jyomin

+0

wow, i dnt see microsoft in mohali – Rohit

0

Ну я согласен и рекомендую использование layout_weight, где вы должны сделать дистрибутив ширину или разделительную ширину среди объектов view.

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

Я также не уверен, почему вам действительно нужно RelativeLayout в этом случае. Если вы перейдете к инструменту иерархии-просмотра от android-sdk, тогда вы узнаете меньшее количество просмотров, которые вы используете в макете, низкую память, которую ваш экран будет использовать и, следовательно, реагировать.

Последнее одно только предложение

0

Я думаю, вы можете решить эту проблему, добавив

<LinearLayout 
android:layout_width="fill_parent" 
android:orientation="horizontal" 

и в ваш LinearLayout (здесь), вы можете добавить свои блоки: android:layout_width="0.0dip" , если вы хотите поместите некоторый запас между блоками ...Применение: android:layout_marginLeft="sizehere.0dip"android:layout_marginRight="sizehere.0dip"

</LinearLayout> 
Смежные вопросы