2012-05-24 39 views
0

我在我的项目中有一个如下的xml布局(顺便说一句,如果你注意到其他东西看起来也是错误/不太好,我会很感激你让我知道!),我的问题是属性“wrap_contents “在最后一个TextView(”EEE“,txt4)中不起作用。我有忽略的规定吗?Android:wrap_content不仅包装其内容?

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

<merge xmlns:android="http://schemas.android.com/apk/res/android"> 

    <TableLayout 
     android:id="@+id/Table" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"> 

     <TableRow 
      android:id="@+id/tableRow1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical"> 


      <TextView 
       android:id="@+id/txt1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_vertical" 
       android:text="AAA" 
       android:textColor="@color/white" /> 


      <Spinner 
       android:id="@+id/spn1" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:entries="@array/array1" /> 

     </TableRow> 

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


      <TextView 
       android:id="@+id/edt1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_vertical" 
       android:text="BBB" 
       android:textColor="@color/white" /> 

      <Spinner 
       android:id="@+id/spn2" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:entries="@array/Tounyuhou" /> 

      <EditText 
       android:id="@+id/edt2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:ems="5" 
       android:inputType="numberSigned"/> 

      <TextView 
       android:id="@+id/txt2" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:text="CCC" android:textColor="@color/white" 
       android:gravity="center_vertical|center_horizontal" 
       android:textSize="18sp"/> 

     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow3" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 



      <TextView 
       android:id="@+id/txt3" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_vertical|center_horizontal" 
       android:text="DDD" 
       android:textColor="@color/white" /> 



      <EditText 
       android:id="@+id/edt3" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="right|center_vertical"> 

      </EditText> 


      <TextView 
       android:id="@+id/txt4" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:text="EEE" 
       android:textColor="@color/white" 
       android:gravity="center_vertical|center_horizontal" 
       android:textSize="20sp"/> 

     </TableRow> 


     </TableLayout> 

</merge> 
+0

你是什么意思它“不工作”?你在看什么,你期望看到什么? – JerseyMike

+0

只是给你认为“它不工作”的视图提供了彩色背景。 – Akram

+0

@JerseyMike,我的意思是,为什么txt4的宽度不仅仅是包装文本'EEE'所需的长度?对不起,如果它含糊不清。 – Quv

回答

0

在这里你定义中的所有行相同的布局,但具有不同的若干意见,像ROW1包含2个,2行包含4然后ROW3包含3次,

所以它给人的问题,

所以我的suggetion为第三行采用不同的表格布局。

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

<merge xmlns:android="http://schemas.android.com/apk/res/android"> 

<TableLayout 
      android:id="@+id/mainTable" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"> 

      <TableRow 
       android:id="@+id/mainTable_tableRow1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_vertical"> 

     <TableLayout 
      android:id="@+id/Table" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"> 

      <TableRow 
       android:id="@+id/tableRow1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_vertical"> 


       <TextView 
        android:id="@+id/txt1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical" 
        android:text="AAA" 
        android:textColor="@color/white" /> 


       <Spinner 
        android:id="@+id/spn1" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:entries="@array/array1" /> 

      </TableRow> 

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


       <TextView 
        android:id="@+id/edt1" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical" 
        android:text="BBB" 
        android:textColor="@color/white" /> 

       <Spinner 
        android:id="@+id/spn2" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_weight="1" 
        android:entries="@array/Tounyuhou" /> 

       <EditText 
        android:id="@+id/edt2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:ems="5" 
        android:inputType="numberSigned"/> 

       <TextView 
        android:id="@+id/txt2" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:text="CCC" android:textColor="@color/white" 
        android:gravity="center_vertical|center_horizontal" 
        android:textSize="18sp"/> 

      </TableRow> 
    </TableLayout> 
</TableRow> 
<TableRow 
       android:id="@+id/mainTable_tableRow2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_vertical"> 
    <TableLayout 
      android:id="@+id/Table2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"> 

      <TableRow 
       android:id="@+id/table2_tableRow3" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 



       <TextView 
        android:id="@+id/txt3" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical|center_horizontal" 
        android:text="DDD" 
        android:textColor="@color/white" /> 



       <EditText 
        android:id="@+id/edt3" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:gravity="right|center_vertical"> 

       </EditText> 


       <TextView 
        android:id="@+id/txt4" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:text="EEE" 
        android:textColor="@color/white" 
        android:gravity="center_vertical|center_horizontal" 
        android:textSize="20sp"/> 

      </TableRow> 


      </TableLayout> 
</TableRow> 
</TableLayout> 

    </merge> 
+0

谢谢,如果我复制并粘贴你的,第二个tableLayout似乎是第一层的过度分层。我应该为他们使用父母布局吗? – Quv

+0

我在这里编辑上面的答案,试试你的问题definetly解决。 – user1208720

+0

非常感谢!!!! – Quv