1

Я создал этот интерфейс таким образом, что верхняя строка в верхней строке таблицы имеет 3 одинаково распределенных кнопки с использованием layout_weight. Но это то, что я в конечном итоге с:Android Layout_Weight не работает должным образом в TableLayout?

enter image description here

И это мой код:

 <RelativeLayout 
      android:id="@+id/content_rel" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#ECECEC" 
      android:orientation="vertical" > 

      <LinearLayout 
       android:id="@+id/blurImage" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:orientation="vertical" > 

       <TableLayout 
        android:id="@+id/tableLayout1" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" > 

        <TableRow 
         android:id="@+id/tableRow1" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:padding="5dip" > 

         <ImageButton 
          android:id="@+id/btnHeartLike" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_weight="1" 
          android:clickable="true" 
          android:src="@drawable/selector" /> 

         <ImageButton 
          android:id="@+id/btnShare" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_weight="1" 
          android:clickable="true" 
          android:src="@drawable/share39" /> 

         <ImageButton 
          android:id="@+id/btnProductComment" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_weight="1" 
          android:clickable="true" 
          android:src="@drawable/comment_icon" /> 
        </TableRow> 

Я не добавить остальную часть кода, так как это долго и не имеет значения (я думаю?). Дайте мне знать, если вам тоже нужны остальные, но я думаю, что проблема заключается в макете, в которой она находится? Как вы думаете, что неправильно?

+1

Относительная компоновка не требует ориентации, я думаю. только линейная компоновка требует определения ее вертикальной или горизонтальной. Кроме того, поскольку вы используете только 3 кнопки изображения, почему вы используете макет таблицы и не используете горизонтальную линейную компоновку, а затем создаете layout_width = 1, и это даст вам желаемый эффект. –

+0

Если я не использую макет таблицы, кнопки изображения перемещаются повсюду, а не в идеальном ряду, а также у меня есть несколько строк под ним, которые я не размещал в stackoverflow. Вы имели в виду, что мой горизонтальный макет горизонтальный? cos У меня уже есть вертикальная линейная компоновка @KostasMatrix –

+0

да точно. посмотрите ответ @kamran ниже и добавьте горизонтальную ориентацию к его ответу –

ответ

1

Почему вы используете TableRow. Вы можете создать его, используя linearlayout

используйте следующий код

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

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

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

     <Button 
      android:id="@+id/button3" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Button" /> 
    </LinearLayout> 

на другой путь

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

     <TableLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 

      <TableRow 

       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"> 

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

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

       <Button 
        android:id="@+id/button3" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:text="Button" /> 
      </TableRow> 
     </TableLayout> 
    </LinearLayout> 
+0

Нет Мне нужно расположение таблицы sir :) есть другие элементы ниже этого, и если я не использую макет таблицы, они будут перемещаться повсюду как беспорядок. Не существует способа использовать макет таблицы и по-прежнему использовать макет на изображениях? –

+0

Это выглядит хорошо, но та же проблема сохраняется :(Я думаю, это потому, что у меня несколько строк –

0

Попробуйте установить ширину 0, вместо того, чтобы wrap_content: android:layout_width="0.0dip"

и проверить following link для объяснения.

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