2016-04-01 45 views
0

我有兩個叫compliance_details.xmlcompliance_details_row.xmlTextviews沒有在屏幕

以下XML文件佔據特定的空間,是我compliance_details.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:orientation="vertical"> 

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

      <TableRow 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_marginLeft="10dp" 
       android:layout_marginTop="15dp"> 

       <TextView 
        android:id="@+id/taskNameLabel" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_column="1" 
        android:layout_marginRight="70dp" 
        android:layout_weight="3" 
        android:singleLine="true" 
        android:text="TaskName" 
        android:textColor="#000" 
        android:textSize="20sp" /> 

       <TextView 
        android:id="@+id/dueDateLabel" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_column="1" 
        android:layout_marginRight="20dp" 
        android:layout_weight="1" 
        android:singleLine="true" 
        android:text="Due Date" 
        android:textColor="#000" 
        android:textSize="20sp" /> 

       <TextView 
        android:id="@+id/ageingLabel" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_column="1" 
        android:layout_marginRight="20dp" 
        android:layout_weight="1" 
        android:singleLine="true" 
        android:text="Ageiging" 
        android:textColor="#000" 
        android:textSize="20sp" /> 

      </TableRow> 

     </TableLayout> 

     <ListView 
      android:id="@+id/listView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:focusable="false" 
      android:focusableInTouchMode="false" 
      android:paddingTop="10dp" /> 

    </LinearLayout> 


and following is my compliance_details_row.xml code 

<?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"> 


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

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_marginLeft="10dp" 
      android:layout_marginTop="15dp"> 

      <TextView 
       android:id="@+id/taskNameValue" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_column="1" 
       android:layout_marginRight="70dp" 
       android:layout_weight="3" 
       android:singleLine="true" 
       android:text="TaskName" 
       android:textColor="#000" 
       android:textSize="20sp" /> 

      <TextView 
       android:id="@+id/dueDateValue" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_column="1" 
       android:layout_marginRight="20dp" 
       android:layout_weight="1" 
       android:singleLine="true" 
       android:text="Due Date" 
       android:textColor="#000" 
       android:textSize="20sp" /> 

      <TextView 
       android:id="@+id/ageingValue" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_column="1" 
       android:layout_marginRight="20dp" 
       android:layout_weight="1" 
       android:singleLine="true" 
       android:text="Ageiging" 
       android:textColor="#000" 
       android:textSize="20sp" /> 

     </TableRow> 

    </TableLayout> 

</LinearLayout> 

在我的適配器,林充氣具有compliance_row.xml的compliance_details_row.xml。

但是,當我這樣做時,compliance_details_row的元素有點失真。 enter image description here

從上圖可以看出,符合性名稱應該在標題TaskName之下,但符合性名稱有點失真,並且截止日期值也只是部分可見。我怎樣才能解決這個問題?

回答

1

你並不需要一個TableLayout來實現這一點。只需使用帶有weightSum的LinearLayout。爲了獲得所需的比例 - 更改每個TextView的權重值。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:weightSum="3"> 

     <TextView 
      android:id="@+id/taskNameValue" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:singleLine="true" 
      android:text="TaskName" 
      android:textColor="#000" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/dueDateValue" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:singleLine="true" 
      android:text="Due Date" 
      android:textColor="#000" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/ageingValue" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:singleLine="true" 
      android:text="Ageiging" 
      android:textColor="#000" 
      android:textSize="20sp" /> 

</LinearLayout> 
1

從父視圖(compliance_details_row.xml)拆下TASKNAME,交貨期和阿恩......並把它添加在您的自定義適配器的第一要素。 compliance_row.xml僅確保此佈局內的行格式爲Table,它無法控制父佈局的視圖。因此,請將compliance_details_row.xmlcompliance_row.xml同時更改爲LinearLayoutweight或從compliance_details_row.xml中刪除三個元素。

1

嘗試使用的LinearLayout與android:layout_weight屬性對XML:

compliance_details.xml

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:id="@+id/taskNameLabel" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.50" 
     android:text="TaskName" 
     android:layout_marginRight="5dp" 
     android:textColor="#000" 
     android:textSize="20sp" /> 

    <TextView 
     android:id="@+id/dueDateLabel" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_column="1" 
     android:layout_weight="0.25" 
     android:text="Due Date" 
     android:layout_marginRight="5dp" 
     android:textColor="#000" 
     android:textSize="20sp" /> 

    <TextView 
     android:id="@+id/ageingLabel" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_column="1" 
     android:layout_marginRight="5dp" 
     android:layout_weight="0.25" 
     android:text="Ageiging" 
     android:textColor="#000" 
     android:textSize="20sp" /> 
</LinearLayout> 


<ListView 
    android:id="@+id/listView" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:paddingTop="10dp" /> 

compliance_details_row.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <TextView 
     android:id="@+id/taskNameValue" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="5dp" 
     android:layout_weight="0.50" 
     android:singleLine="true" 
     android:text="TaskName" 
     android:textColor="#000" 
     android:textSize="20sp" /> 

    <TextView 
     android:id="@+id/dueDateValue" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_column="1" 
     android:layout_marginRight="5dp" 
     android:layout_weight="0.25" 
     android:singleLine="true" 
     android:text="Due Date" 
     android:textColor="#000" 
     android:textSize="20sp" /> 

    <TextView 
     android:id="@+id/ageingValue" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="5dp" 
     android:layout_weight="0.25" 
     android:singleLine="true" 
     android:text="Ageiging" 
     android:textColor="#000" 
     android:textSize="20sp" /> 

</LinearLayout>