Android xml布局行为异常

Android xml布局行为异常,android,Android,我正在设计一个自定义listview,它包含许多子视图。因为有两个子视图的行为异常 若“圈数”值是个位数,那个么视图将移到左侧 我一直希望“zodia或stone”图像图标始终为“zodia或stone”文本视图值的3dip左边距,以便值和图像与3dip并排显示。但左边距不起作用,因此我设置为右边距 list_row.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://

我正在设计一个自定义listview,它包含许多子视图。因为有两个子视图的行为异常

  • 若“圈数”值是个位数,那个么视图将移到左侧
  • 我一直希望“zodia或stone”图像图标始终为“zodia或stone”文本视图值的3dip左边距,以便值和图像与3dip并排显示。但左边距不起作用,因此我设置为右边距
  • list_row.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="5dip" >
    
    <LinearLayout
        android:id="@+id/list_row"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginRight="5dip"
        android:background="@drawable/image_bg"
        android:padding="3dip" >
    
        <ImageView
            android:id="@+id/list_image"
            android:layout_width="85dip"
            android:layout_height="80dip"
            android:scaleType="fitXY"
            android:shadowColor="#585858"
            android:shadowDx="0.0"
            android:shadowDy="0.0"
            android:shadowRadius="20"
            android:src="@drawable/karthik" />
    </LinearLayout>
    
    <ImageView
        android:id="@+id/ImageView02"
        android:layout_width="15dip"
        android:layout_height="15dip"
        android:layout_alignLeft="@+id/list_row"
        android:layout_below="@+id/list_row"
        android:contentDescription="Zodiac icon"
        android:scaleType="fitXY"
        android:shadowColor="#8B4513"
        android:src="@drawable/rings_icon" 
        android:layout_marginRight="0dip"/>
    
    <TextView
        android:id="@+id/title_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/list_row"
        android:layout_toRightOf="@+id/list_row"
        android:text="KARTHIK.KOLANJI"
        android:textColor="#181818"
        android:textSize="16dip"
        android:textStyle="bold"
        android:typeface="sans" />
    
    <TextView
        android:id="@+id/sub_title_category"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginRight="5dip"
        android:gravity="right"
        android:text="Facebook Friend"
        android:textColor="#10bcc9"
        android:textSize="12dip"
        android:textStyle="bold" />
    
    <TextView
        android:id="@+id/TextView04"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/txtview_turns"
        android:layout_below="@+id/txtview_turns"
        android:text=" days  left"
        android:textColor="#996600"
        android:textSize="9sp"
        android:textStyle="bold" 
        android:layout_marginTop="2dip"/>
    
    <TextView
        android:id="@+id/list_image_arrow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/sub_title_category"
        android:layout_below="@+id/title_name"
        android:text="t u r n s"
        android:textColor="#996600"
        android:textSize="9sp"
        android:textStyle="bold" />
    
    <TextView
        android:id="@+id/txtview_turns"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/list_image_arrow"
        android:layout_below="@+id/list_image_arrow"
        android:text="24"
        android:textColor="#990000"
        android:textSize="27sp"
        android:textStyle="normal" />
    
    <TextView
        android:id="@+id/txtview_next_bd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/TextView01"
        android:layout_alignBottom="@+id/TextView01"
        android:layout_marginLeft="5dp"
        android:layout_toRightOf="@+id/TextView01"
        android:text="Wednesday"
        android:textColor="#CC0000"
        android:textSize="15sp"
        android:textStyle="bold" />
    
    <TextView
        android:id="@+id/txtview_zodiac"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/TextView02"
        android:layout_alignBottom="@+id/TextView02"
        android:layout_toRightOf="@+id/TextView02"
        android:text="Sagittarius"
        android:textColor="#CC0000"
        android:textSize="15sp"
        android:textStyle="normal" 
        />
    
    <TextView
            android:id="@+id/txtview_type_of_reminder"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/ImageView02"
            android:layout_toRightOf="@+id/ImageView02"
            android:text="(Anniversary)"
            android:textColor="#787878"
            android:textSize="13sp"
            android:textStyle="normal" />
    
    <ImageView
        android:id="@+id/ImageView01"
        android:layout_width="20dip"
        android:layout_height="20dip"
        android:layout_above="@+id/txtview_next_bd"
        android:layout_toLeftOf="@+id/TextView04"
        android:contentDescription="Zodiac icon"
        android:scaleType="fitXY"
        android:shadowColor="#8B4513"
        android:shadowDx="0.0"
        android:shadowDy="0.0"
        android:shadowRadius="20"
        android:src="@drawable/scroll" 
        android:layout_marginRight="50dip"/>
    
    <TextView
        android:id="@+id/sub_title_contact_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/title_name"
        android:layout_alignTop="@+id/list_image_arrow"
        android:text="9594080469"
        android:textColor="#181818"
        android:textSize="15dip" />
    
    <TextView
        android:id="@+id/sub_title_birthdate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/txtview_turns"
        android:layout_alignBottom="@+id/txtview_turns"
        android:layout_alignLeft="@+id/sub_title_contact_number"
        android:text="7th, April 1990"
        android:textColor="#181818"
        android:textSize="15dip" />
    
    <TextView
        android:id="@+id/TextView02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/sub_title_birthdate"
        android:layout_below="@+id/txtview_turns"
        android:text="Zodiac :  "
        android:textColor="#181818"
        android:textSize="15sp"
        android:textStyle="normal" />
    
    <TextView
        android:id="@+id/txtview_days_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/txtview_type_of_reminder"
        android:layout_alignBottom="@+id/txtview_type_of_reminder"
        android:layout_alignRight="@+id/TextView04"
        android:text="36"
        android:textColor="#990000"
        android:textSize="27sp"
        android:textStyle="normal" />
    
    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/txtview_type_of_reminder"
        android:layout_alignBottom="@+id/txtview_type_of_reminder"
        android:layout_alignLeft="@+id/TextView02"
        android:text="Birthday on : "
        android:textColor="#181818"
        android:textSize="15sp"
        android:textStyle="normal" />
    
     </RelativeLayout>
    
    
    

    以下是我是否可以建议
    线性布局
    而不是
    相对布局
    ? 我发现,
    RelativeLayout
    会给很多孩子带来不可靠的结果。(尤其是以编程方式添加内容时)请尝试以下方法:

    LinearLayout
    <内容主体的容器
    方向。垂直

    LinearLayout
    Orientation.HORIZONTAL

    对于每一行内容,将其放在第二行
    LinearLayout
    中,并使其成为第一行的子行


    我怀疑您的问题会很快消失。

    如果我改为线性布局,那么我的整个布局都会受到干扰,因为我使用RelativeLayout属性的每个地方有时都很糟糕,但我们必须提高工作效率,为应用程序做最好的事情,即使这意味着重写大量代码。我相信您可以找到一种使用
    RelativeLayout
    的方法,但是由于您是动态添加内容的,并且您在内容被生成的内容替换时遇到问题,因此我真的认为使用
    LinearLayout
    会更好。这取决于你,可能需要一个小时,但如果你的代码更好,这真的是一种牺牲吗?是的,我理解,但你所说的“动态”是什么意思。这是一个拖放视图,不是由java代码编写的。从屏幕截图上看,它看起来像是要动态添加那些生日提醒。无论是从数据库还是从web API中提取,都必须使用java来填充“列表行”。还有其他方法吗??