繁体   English   中英

为什么这个xml布局会使我的应用崩溃?

[英]why is this xml layout crashing my app?

此布局用作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时,将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=""

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM