【问题标题】:TextView changes size because of marginTextView 由于边距而改变大小
【发布时间】:2015-10-26 15:49:38
【问题描述】:

当我使用 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>

【问题讨论】:

  • 你为什么要把你的TextView一半留在你的父母之外?你有什么要求?
  • 我正在尝试实现 semi-pageViewer(目前用于 textViewes),相邻页面显示一半。

标签: android xml view


【解决方案1】:

FrameLayout 总是与其子代重叠。对于我建议使用的有效放置小部件,

LinearLayoutlayout_weight

使用RelativeLayout相对于另一个小部件排列小部件

【讨论】:

    【解决方案2】:

    这里有两个问题:

    1. 您正在使用FrameLayout。这意味着当您不断增加孩子的边距时,视图将移出父母。为什么?因为这就是FrameLayout 的设计方式。在此处阅读文档:http://developer.android.com/reference/android/widget/FrameLayout.html

    FrameLayout 的设计目的是在屏幕上屏蔽一个区域以显示单个项目。通常,应该使用 FrameLayout 来保存单个子视图,因为很难以一种可缩放到不同屏幕尺寸的方式来组织子视图,而不会使子视图相互重叠。

    因此,您可以改用 RelativeLayoutLinearLayout

    1. 您遇到的第二个问题是android:singleLine="true"。这意味着随着文本长度的增加,它仍将显示在一行中,因此文本将被剪裁。所以把它设置为false,或者直接删除这个属性。

      android:singleLine="false"

    【讨论】:

    • 谢谢! RelativeLayout 应该可以工作(:android:layout_width="wrap_content" 不应该足以告诉 textView 拉伸吗?我真的需要将文本显示为单行。
    • wrap_content 可以拉伸,但可以拉伸多久?假设您的字体大小为 20sp,这意味着在保持此字体大小的单行上可以显示多少个字符存在物理限制。因此,随着文本大小的增加,TextView 的大小也会增加,直到到达屏幕边缘。然后要么你需要继续使用另一行,要么使用 ellipsize 或让文本被剪裁。
    【解决方案3】:

    我认为你需要换行:

    android:singleLine="true"
    

    为假。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多