为什么这个XML布局崩溃了我的应用



此布局用作ListView中项目的布局。我的布局非常简单,一切正常,但是现在我已经更改了一点,并且在尝试加载时正在崩溃。.不确定我在做什么错

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

使用android:layout_weight put 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>

您需要将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>

您给android_layout_weight的每个元素都没有给出宽度。如果您给了这个重量,以便元素有一定的空间android:layout_width =" 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> 

我不知道您在此布局上要实现什么,但是XML中很少有错误。

  1. 在各个地方的宽度和高度都缺失。考虑添加这些。

  2. 您正在添加linearlayout作为父标签,但使用relativelayout标签

    android:layout_alignparentbottom =" true" android:layout_alignparenttop =" true"

    确实考虑删除这些。

  3. 使用android:layout_weight=""android:layout_height="" , android:layout_width=""

  4. 的正确组合

评论是否需要任何澄清或帮助

最新更新