自动切割文本 TextView, 以免重叠另一个 TextView

我有
ListView

, 它显示一堆作业。 元素
ListView

用过的
FrameLayout

容纳两者
TextViews

. 第一的
TextView

对齐到左边缘,第二个右侧。 /两者都在中心垂直对齐。/ 首先显示任务的描述片段,第二个显示 - 执行日期。

我想做的是使执行程序占用,占用了他所需的空间,并且描述填充了剩余空间,如下所示:

|----------------------------------------------------|

| 阅读pgs。 15-35, 更新蒂姆...... Fri, 4 五月|

|----------------------------------------------------|

现在,描述文本将继续重叠日期。 但是,在线的末尾将被截断。

无论如何我都可以做到 XML, 或者我必须在代码中执行它,在设置值之前缩短字符串
TextView

/据推测,我的电话
getView

/? 如果我在代码中完成了它,我必须计算水平空间的数量,它会占用线条,并找出描述的描述程度。 似乎它会导致一团糟......

关于如何做到的任何其他建议,我们真的很欣赏!
已邀请:

君笑尘

赞同来自:

尝试使用属性 ellipsize, 例如 :


<textview android:ellipsize="end" android:layout_height="wrap_content" android:layout_width="wrap_content" android:singleline="true"></textview>


注意 Android 或至少一些版本要求作为属性 "ellipsize", 所以属性 "singleline", 为了使系统实际致力和添加点。

小明明

赞同来自:

反而 FrameLayout 这是完美的地方 LinearLayout 或者 RelativeLayout 结合 ellipsize:


<linearlayout android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="horizontal">
<textview ...="" android:ellipsize="end" android:height="wrap_content" android:layout_weight="1" android:width="0dp"></textview>
<textview ...="" android:height="wrap_content" android:layout_weight="0" android:width="wrap_content"></textview>
</linearlayout>


或者交替


<relativelayout android:layout_height="wrap_content" android:layout_width="match_parent">
<textview ...="" android:height="wrap_content" android:id="@+id/secondTV" android:layout_weight="0" android:width="wrap_content"></textview>
<textview ...="" android:ellipsize="end" android:height="wrap_content" android:layout_alignparentleft="true" android:layout_toleftof="@id/secondTV" android:width="0dp"></textview>
</relativelayout>

二哥

赞同来自:

修正案 FrameLayout 在 LinearLayout 或者 RelativeLayout.

LinearLayout: 制作执行日期的宽度 "wrap_content" 和描述的宽度 0dp, 然后加 layout_weight="1" 对描述

RelativeLayout: 首先使用执行日期 width wrap_content, 然后将描述放置在执行日期的规则中。

冰洋

赞同来自:

和安东尼和 JRaymond 很大程度上包括在内 /JRaymond 帮助我了解他的榜样/. 这就是我想到的:


<relativelayout android:layout_height="fill_parent" android:layout_width="fill_parent">
<textview android:id="@+id/due_date" android:layout_alignparentright="true" android:layout_height="fill_parent" android:layout_width="wrap_content" android:singleline="true"></textview>
<textview android:id="@+id/description" android:layout_alignparentleft="true" android:layout_height="fill_parent" android:layout_toleftof="@id/due_date" android:layout_width="0dp" android:singleline="true"></textview>
</relativelayout>


/起初我需要声明我的工资日期标签,以便我可以在说明书中引用它。 我才意识到这一点 android:ellipsize 它似乎是可选的 - 我认为他等于默认值 "end"./

太感谢了!

要回复问题请先登录注册