RelativeLayout保证金问题,文字流入其他“字段”

时间:2011-03-08 20:37:09

标签: android xml android-layout

一直试图找出Android布局并遇到一些问题。我找到了如何在我想要的地方获取对象,使用RelativeLayout(尝试过LinearLayout和TableLayout组合,只发现重力和属性没有做我认为他们会做的事情......)但是我在其他文本背后出现了文字流血的问题。

Valid XHTML

第二项说明问题。我希望有相同的布局,没有文字流血。这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="?android:attr/listPreferredItemHeight"
        android:layout_width="wrap_content"
        android:padding="6dip">
    <TextView android:id="@+id/item_text_product"
            android:layout_alignParentLeft="true" 
            android:textSize="24sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    <TextView android:id="@+id/item_text_total"
            android:layout_alignParentRight="true"
            android:textSize="18sp"
            android:textStyle="bold"
            android:textColor="#00aa00"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    <TextView android:id="@+id/item_text_count"
            android:layout_alignParentRight="true"
            android:layout_below="@id/item_text_total"
            android:textSize="12sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    <TextView android:id="@+id/text_count"
            android:text="Count: " 
            android:textSize="12sp"
            android:layout_toLeftOf="@id/item_text_count" 
            android:layout_alignBaseline="@id/item_text_count" 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
</RelativeLayout>

5 个答案:

答案 0 :(得分:2)

首先放置item_text_counttext_count项(我的意思是,将它们放在XML中的text_count之上)...然后:

<TextView android:id="@+id/item_text_total"
        android:layout_alignParentRight="true"
        android:layout_toLeftOf="@id/text_count"
        android:textSize="18sp"
        android:textStyle="bold"
        android:textColor="#00aa00"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

如您所见,差异为android:layout_toLeftOf="@id/text_count"

答案 1 :(得分:1)

我认为您只需要将android:layout_toRightOf="@id/item_text_product"添加到第二个textView,但现在无法尝试。

答案 2 :(得分:1)

在产品maxEms上设置TextView属性,使其宽度永远不会超过 n ems。

这种方式应该是最好的解决方案。

答案 3 :(得分:0)

如果您不想要重叠行为,可以尝试使用LinearLayout。

类似的东西:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:layout_width="wrap_content"
    android:padding="6dip">
    <TextView android:id="@+id/item_text_product"
        android:textSize="24sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView android:id="@+id/item_text_total"
            android:layout_alignParentRight="true"
            android:textSize="18sp"
            android:textStyle="bold"
            android:textColor="#00aa00"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <TextView android:id="@+id/item_text_count"
            android:layout_alignParentRight="true"
            android:layout_below="@id/item_text_total"
            android:textSize="12sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <TextView android:id="@+id/text_count"
            android:text="Count: " 
            android:textSize="12sp"
            android:layout_toLeftOf="@id/item_text_count" 
            android:layout_alignBaseline="@id/item_text_count" 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </RelativeLayout>
</LinearLayout>

layout_weight =“1”会导致该视图展开以填充右侧视图未占用的可用空间。

答案 4 :(得分:0)

问题在于wrap_content,视图将扩展以适应其内容。

如何缩小文本并使用嵌套的线性布局?