【问题标题】:How to replace ellipses with fade / fading edge in textview in Android sdk?如何在 Android sdk 的 textview 中用淡入淡出/淡入淡出的边缘替换椭圆?
【发布时间】:2011-09-20 17:17:50
【问题描述】:

我有一个列表,列表中的每一行都有文本。一些文本超出了屏幕的边缘。我可以让它截断文本并显示省略号。 “淡化文本边缘”我没有问题,但是,淡化发生在每个文本的边缘,而不仅仅是那些对于 textview 来说太大的文本。

我已经搜索和搜索,但找不到一种方法,基本上,完全做椭圆的作用,但是,而不是椭圆,淡化文本的边缘只 如果它超出屏幕边缘。有人可以帮忙吗?现在,我的文本视图包含:

android:fadingEdge="horizontal" 
android:inputType="text"
android:maxLines="1"

我尝试了很多其他方法都无济于事。

【问题讨论】:

  • 附注刚刚意识到,当我使用这 3 个字段(水平、文本、1)时,无论出于何种原因,我实际上都无法选择列表项。只是想我会指出这一点。

标签: android textview fade


【解决方案1】:

要启用选取框并模拟不影响列表选择只需使用以下内容:

在代码中,只需对该文本视图使用两种方法。

textViewObj.setSelected(true);
textViewObj.setEllipsize(TextUtils.TruncateAt.MARQUEE);

【讨论】:

  • 我无法访问代码中的文本视图,但是,我在布局 xml 文件中设置了椭圆大小并且它起作用了。谢谢!!! (我以为我以前做过,但出于某种原因,我只是假设设置 'ellipsize' 意味着我会有椭圆,但显然不是 :-) 再次感谢!
  • 附注不幸的是,我没有足够的声誉来“投票”或接受您的回复,因此,将取决于其他人来做。
  • 是的...只有 '13' 的声望,但是说我需要 15 才能投票。我不知道如何获得声誉,呵呵。
【解决方案2】:

启用水平边缘淡入淡出(右侧)的具体方法调用是

setHorizontalFadingEdgeEnabled(true)

这是我的类 ScrollTextView 中的构造函数示例,它扩展了 TextView:

public ScrollTextView(Context context, AttributeSet attrs) {
    this(context, attrs, android.R.attr.textViewStyle);
    setHorizontalFadingEdgeEnabled(true);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多