2012-12-20 269 views
0

此佈局用作listView中項目的佈局。我有一個非常簡單的佈局,一切工作正常,但現在我已經改變了一點,當它試圖加載它崩潰我的應用程序..不知道做什麼我錯了爲什麼這個XML佈局崩潰我的應用程序?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:weightSum="8" 
    android:layout_width="fill_parent" 
    android:layout_height="75dp"> 

    <TextView android:id="@+id/priceText" 
     android:layout_weight="2" 
     android:layout_height="fill_parent" 
     android:gravity="center_vertical" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentBottom="true" 
     android:textStyle="bold" 
     android:textSize="22dp" 
     android:textColor="#000000" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="5dp" 
     android:layout_marginLeft="5dp" /> 

    <LinearLayout 
     android:layout_weight="5" 
     android:layout_height="fill_parent" 
     android:weightSum="2" 
     android:orientation="vertical"> 

     <TextView android:id="@+id/storeText" 
      android:layout_width="fill_parent" 
      android:layout_weight="1" 
      android:gravity="right|bottom" 
      android:textStyle="bold" 
      android:textSize="22dp" 
      android:textColor="#000000" 
      android:layout_marginTop="5dp" 
      android:layout_marginBottom="5dp" /> 

     <TextView android:id="@+id/distanceText" 
      android:layout_width="fill_parent" 
      android:layout_weight="1" 
      android:gravity="right|top" 
      android:textSize="16dp" 
      android:textColor="#545454" 
      android:layout_marginTop="5dp" 
      android:layout_marginBottom="5dp" /> 

    </LinearLayout> 

    <TextView 
     android:layout_height="fill_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginBottom="5dp" 
     android:layout_marginTop="5dp" 
     android:layout_weight="1" 
     android:gravity="right|center_vertical" 
     android:text=">" 
     android:textColor="#000000" 
     android:textSize="36dp" 
     android:textStyle="bold" 
     android:layout_marginRight="5dp" /> 

</LinearLayout> 
+1

是什麼登錄貓syas? – Nermeen

+0

請發佈logcat –

+1

當你突然出現異常錯誤時,最好的方法就是清理並重建解決方案。 – Android

回答

2

當你使用Android:layout_weight把layout_width = 「0dip」

工作代碼

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:weightSum="8" 
    android:layout_width="fill_parent" 
    android:layout_height="75dp"> 

    <TextView android:id="@+id/priceText" 
     android:layout_weight="2" 
     android:layout_width="0dip" 
     android:layout_height="fill_parent" 
     android:gravity="center_vertical" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentBottom="true" 
     android:textStyle="bold" 
     android:textSize="22dp" 
     android:textColor="#000000" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="5dp" 
     android:layout_marginLeft="5dp" /> 

    <LinearLayout 
     android:layout_weight="5" 
     android:layout_width="0dip" 
     android:layout_height="fill_parent" 
     android:weightSum="2" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/storeText" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="5dp" 
      android:layout_marginTop="5dp" 
      android:layout_weight="1" 
      android:gravity="right|bottom" 
      android:textColor="#000000" 
      android:textSize="22dp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/distanceText" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="5dp" 
      android:layout_marginTop="5dp" 
      android:layout_weight="1" 
      android:gravity="right|top" 
      android:textColor="#545454" 
      android:textSize="16dp" /> 

    </LinearLayout> 

    <TextView 
     android:layout_height="fill_parent" 
     android:layout_width="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginBottom="5dp" 
     android:layout_marginTop="5dp" 
     android:layout_weight="1" 
     android:gravity="right|center_vertical" 
     android:text=">" 
     android:textColor="#000000" 
     android:textSize="36dp" 
     android:textStyle="bold" 
     android:layout_marginRight="5dp" /> 

</LinearLayout> 
1

您需要添加android:layout_width=".."android:layout_height=".."到所有的觀點:

<TextView android:id="@+id/storeText" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="right|bottom" 
     android:textStyle="bold" 
     android:textSize="22dp" 
     android:textColor="#000000" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="5dp" /> 

    <TextView android:id="@+id/distanceText" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="right|top" 
     android:textSize="16dp" 
     android:textColor="#545454" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="5dp" /> 

    </LinearLayout> 

    <TextView 
    android:layout_height="fill_parent" 
    android:layout_width="0dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginBottom="5dp" 
    android:layout_marginTop="5dp" 
    android:layout_weight="1" 
    android:gravity="right|center_vertical" 
    android:text=">" 
    android:textColor="#000000" 
    android:textSize="36dp" 
    android:textStyle="bold" 
    android:layout_marginRight="5dp" /> 

</LinearLayout> 
0

您給android_layout_weight的每個元素都沒有給出寬度。如果你給了這個重量使元件需要一定的空間,你應該給佈局 的android:layout_width =「0」 所以它需要的重量寬度

高度和寬度都需要標籤爲每個元素

0

你錯過了一些佈局寬度和佈局高度屬性。 我已在所有項目中添加。

請使用下面的代碼。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:weightSum="8" 
    android:layout_width="fill_parent" 
    android:layout_height="75dp"> 

    <TextView android:id="@+id/priceText" 
     android:layout_weight="2" 
     android:layout_height="fill_parent" 
     android:gravity="center_vertical" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentBottom="true" 
     android:textStyle="bold" 
     android:textSize="22dp" 
     android:layout_width="wrap_content" 

     android:textColor="#000000" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="5dp" 
     android:layout_marginLeft="5dp" /> 

    <LinearLayout 
     android:layout_weight="5" 
     android:layout_height="fill_parent" 
     android:weightSum="2" 
     android:layout_width="wrap_content" 
     android:orientation="vertical"> 

     <TextView android:id="@+id/storeText" 
      android:layout_width="fill_parent" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:gravity="right|bottom" 
      android:textStyle="bold" 
      android:textSize="22dp" 

      android:textColor="#000000" 
      android:layout_marginTop="5dp" 
      android:layout_marginBottom="5dp" /> 

     <TextView android:id="@+id/distanceText" 
      android:layout_width="fill_parent" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:gravity="right|top" 
      android:textSize="16dp" 
      android:textColor="#545454" 
      android:layout_marginTop="5dp" 
      android:layout_marginBottom="5dp" /> 

    </LinearLayout> 

    <TextView 
     android:layout_height="fill_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginBottom="5dp" 
     android:layout_marginTop="5dp" 
     android:layout_weight="1" 
     android:gravity="right|center_vertical" 
     android:text=">" 
     android:layout_width="fill_parent" 

     android:textColor="#000000" 
     android:textSize="36dp" 
     android:textStyle="bold" 
     android:layout_marginRight="5dp" /> 

</LinearLayout> 
+0

因爲他使用權重,它會更好,如果他根據需要將寬度或高度設置爲0dp。 – Android

+0

是的黑魔鬼你是對的。根據他的要求,他可以改變它。任何方式都應該在每個元素中都有高度和重量屬性。 – itsrajesh4uguys

0

我不知道究竟你想通過這樣的佈局來實現這裏什麼,但在你的XML中幾乎沒有錯誤。

  1. 在各個地方的寬度和高度都不見了。考慮添加這些。

  2. 您要添加的LinearLayout作爲父標籤,但使用RelativeLayout的標籤,如

    機器人:layout_alignParentBottom = 「真」 機器人:layout_alignParentTop = 「真」

    不要考慮刪除這些。

  3. 使用android:layout_weight=""正確組合和android:layout_height="" , android:layout_width=""

評論,如果任何澄清或幫助需要

相關問題