我添加了第二个TextView
,它应该在第一个TextView
之下,但现在第一个TextView
正在运行,但第二个<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/state1"
android:textSize="16sp" />
<TextView
android:id="@+id/secondLine"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_below="@id/textView1"
android:ellipsize="marquee"
android:singleLine="true"
android:text="@string/sayer1"
android:textSize="12sp" />
<TextView
android:id="@+id/thirdLine"
android:layout_below="@+id/textView2"
android:text="@string/state2"
android:textSize="16sp" />
<TextView
android:id="@+id/textView2"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="@string/sayer2"
android:textSize="16sp" />
</RelativeLayout>
没有显示。
这是我的代码:
{{1}}
答案 0 :(得分:1)
可能是您的顶部RelativeLayout
的高度设置为?android:attr/listPreferredItemHeight
,并且第一个文本视图高度设置为包装内容。根据第一个文本视图的高度,可能只是布局不够高,无法显示两者
将您的最高RelativeLayout
更改为使用wrap_content
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="6dip" >
查看这两个文本视图:
<TextView
android:id="@+id/thirdLine"
android:layout_below="@+id/textView2"
android:text="@string/state2"
android:textSize="16sp" />
<TextView
android:id="@+id/textView2"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="@string/sayer2"
android:textSize="16sp" />
这不会起作用,因为你将第二个放在layout_alignParentBottom="true"
的底部,然后你试图在它下面放一些东西。但它与底部对齐,所以下方没有空间!
将这两个底部文本视图更改为以下内容可能会执行您想要的操作:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:text="@string/sayer2"
android:textSize="16sp" />
<TextView
android:id="@+id/thirdLine"
android:text="@string/state2"
android:textSize="16sp" />
</LinearLayout>
答案 1 :(得分:1)
你需要三件事才能让别人出现。
将此属性android:layout_height="?android:attr/listPreferredItemHeight"
更改为android:width="match_parent"
将宽度/高度设置为TextView
s。 thirdLine 和 textView2 没有合适的宽度/高度。尝试做到这一点:
android:layout_width="match_parent"
android:layout_height="wrap_content"
请勿尝试将TextView
置于另一个alignParentBottom
下方,其对齐方式为<?xml version="1.0" encoding="utf-8"?>
// set a height to wrap_content/match_parent/fill_parent
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="6dip" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="state1"
android:textSize="16sp" />
<TextView
android:id="@+id/secondLine"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_below="@id/textView1"
android:ellipsize="end"
android:singleLine="true"
android:lines="1"
android:text="sayer1"
android:textSize="12sp" />
// if you want to align the latter text
// to the bottom, make a container as...
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >
// declare the width/height of the TextView
<TextView
android:id="@+id/textView2"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:text="sayer2"
android:textSize="16sp" />
<TextView
android:id="@+id/thirdLine"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_below="@+id/textView2"
android:text="state2"
android:textSize="16sp" />
</RelativeLayout>
</RelativeLayout>
。而不是这样,尝试添加一个容器,其对齐位于全局父级的底部。见下文:
尝试以下格式:
{{1}}
让我知道这是否是预期的结果。希望这会有所帮助。
答案 2 :(得分:0)
注意:我被告知这个答案是错误的,但它确实突出了布局模拟器解析器中的一个问题。有鉴于此,我将把这个答案留下来记录这个缺陷。
您在下面的布局中偶然添加了@+id/TextView2
。
android:layout_below="@+id/textView2"
请尝试使用此参考具体ID,并且您需要添加大小调整参数
<TextView
android:id="@+id/thirdLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textView2"
android:text="@string/state2"
android:textSize="16sp" />
这仅适用于我的Android布局模拟器中的这些更改,但您可能需要将定义textView2
移到其引用的位置之上。
这是在我的布局构建器中工作的文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="asdf"
android:textSize="16sp" />
<TextView
android:id="@+id/secondLine"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_below="@id/textView1"
android:ellipsize="marquee"
android:singleLine="true"
android:text="fdsa"
android:textSize="12sp" />
<TextView
android:id="@+id/thirdLine"
android:layout_below="@id/textView2"
android:text="asdffdsa"
android:textSize="16sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="string/sayer2"
android:textSize="16sp" />
</RelativeLayout>
答案 3 :(得分:0)
我不认为你的布局工作正常,你应该在 @ id / textView2 上找到“没有找到资源...”因为你试图在>中引用它p>
android:layout_below="@id/textView2"
在“thirdLine”TextView 之前中,您已将 textView2 添加到relativelayout中。
订单应该是这样的:
<TextView
android:id="@+id/textView1"" />
<TextView
android:id="@+id/secondLine"
android:layout_below="@id/textView1" />
<TextView
android:id="@+id/textView2"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" " />
<TextView
android:id="@+id/thirdLine"
android:layout_below="@+id/textView2" />
请记住,当你有RelativeLayout时,你添加你的观点的顺序并不重要,你可以告诉他们在哪里定位自己。
必须总是会发生,但如果您引用某个视图,那么它必须 引用它的视图。哇这令人困惑。
让我们说A想要低于B.然后在你的RelativeLayout中,B必须在A之前来。
现在已经解释了。在您的 textView2 中,您告诉它将自己与其父级对齐,以便它转到底部和左侧。当然,您不能在 textView2 下面 thirdLine ,因为 textView2 在左下角中对齐。请尝试改为:
<TextView
android:id="@+id/thirdLine"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" />
<TextView
android:id="@+id/textView2"
android:layout_above="@+id/thirdLine" />
此外,IDE是否告诉您说明“layout_width”和“layout_height”?对于TextViews。如果这对你没有任何帮助,请你画一张你需要的小图片,以便我们更好地指导你?
我还建议将父视图(Your RelativeLayout)的高度和宽度说明为“fill_parent”(API 7及以下)或“match_parent”(API 8及更高版本)。
对于我要去的其他观点
android:layout_width="match_parent" or "fill_parent"
android:layout_height="wrap_content"
但是您也可以将宽度设置为“wrap_content”,更适合您的UI。