当我使用Android:margin将textView定位在它的父级之外时,它表现得很奇怪:改变它自己的大小,文本在textView框内移动。我该如何预防呢? 在图像上:左侧textView最后有裁剪文字,我不想要那样。
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="16dp"
android:clipChildren="false">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:ellipsize="none"
android:singleLine="true"
android:textColor="#FFFFFF"
android:textSize="22.5dp"
android:layout_marginRight="200dp"
tools:text="0 TEXT VIEWVIEW"
tools:textColor="#000000" />
<...>
</FrameLayout>
答案 0 :(得分:2)
FrameLayout
总是与其子女重叠。为了有效放置小部件我建议使用,
LinearLayout
的 layout_weight
使用RelativeLayout
答案 1 :(得分:1)
我认为你需要改变这一行:
android:singleLine="true"
为假。
答案 2 :(得分:1)
这里有两个问题:
FrameLayout
。这意味着当你不断增加孩子的边缘时,视图将移出父母。为什么?因为那是FrameLayout
的设计方式。阅读文档:http://developer.android.com/reference/android/widget/FrameLayout.html FrameLayout旨在阻挡屏幕上的某个区域以显示单个项目。通常,FrameLayout应该用于保存单个子视图,因为以可以扩展到不同屏幕大小而儿童不会相互重叠的方式组织子视图可能很困难。
因此,您可以使用RelativeLayout
或LinearLayout
。
您遇到的第二个问题是android:singleLine="true"
。这意味着随着文本长度的增加,它仍将显示在一行中,因此文本将被剪裁。因此,请将其设置为false
,或者只删除此属性。
android:singleLine="false"