有没有办法在TextView中隐藏文本?

时间:2011-07-11 16:05:47

标签: android textview

有没有办法隐藏TextView中的一些(但不是全部)文本?我尝试使用AbsoluteSizeSpan将大小设置为0,但是我没有看到任何视觉效果。 (你可以将大小设置为1,你基本上会得到凹凸不平的线条而不是可读的文字。可爱,但不是我想要的。)

隐藏,我的意思是走开,不可见,不占用空间。绘制与背景颜色相同的文字并不是我想要的。

我意识到我只能用我想要显示的文本替换TextView中的文本,但我已经使用跨度来做更多动态样式,而像HiddenSpan这样的东西会很有用。它存在吗?

7 个答案:

答案 0 :(得分:8)

我认为您正在寻找:TextView.setVisibility(View.GONE)

答案 1 :(得分:6)

尝试使用此代码:

我已完成此代码..

<TextView
android:id="@+id/tvi" 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="invisible"

    android:visibility="gone"
/>

或代码: -

   TextView txtView = (TextView)findViewById(R.id.tvi);
   txtView.setVisibility(View.INVISIBLE);

OR

  txtView.setVisibility(View.GONE);

可能会帮助你

答案 2 :(得分:3)

我刚遇到这个问题,并编写了以下课程:

public class NoDisplaySpan extends ReplacementSpan {

    public NoDisplaySpan() {}

    @Override
    public void draw(Canvas arg0, CharSequence arg1, int arg2, int arg3,
            float arg4, int arg5, int arg6, int arg7, Paint arg8) {}

    @Override
    public int getSize(Paint paint, CharSequence text, int start, int end,
            FontMetricsInt fm) {
        return 0;
    }
}

似乎只能在一个段落内工作;当我将span设置为延伸超过换行符时,我得到一个ArrayIndexOutofBoundsException。我很想知道是否有人可以解决这个问题。

答案 3 :(得分:1)

<TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textSize="0sp"
  android:textColor="@android:color/transparent" />

透明文本颜色隐藏文本的可见性。添加textSize以删除或最小化占用的空间。

答案 4 :(得分:0)

刚刚遇到这个问题。基本上,您只需使用子字符串或其他内容显示字符串的一部分,如果单击textview,则将全文设置为它。

希望它可以帮助某人完成该主题。 (如果需要,可以复制粘贴一段代码)。

答案 5 :(得分:0)

不确定你是否还在寻找答案,因为它已经很老了,但我在找东西时发现它并认为我可以提供帮助。您是否尝试在键盘上设置一个按钮或硬件按钮以在可见的TextView和隐藏的TextView之间切换。如果您希望将可见文件保留为隐藏的一部分,则必须将文本从可见文件复制到隐藏文件。如果你想隐藏它自己的文本,那么这将是一个简单的解决方案。

答案 6 :(得分:0)

我想出了一种办法。让我们使用SpannableString和Color.TRANSPARENT

例如: <>原始文本:“ Hello dude”

<>预期文本:“ _____ dude”

  • 在这里,我将使用Kotlin:

val spannableString = SpannableString(“ Hello dude”)

spannableString.setSpan(ForegroundColorSpan(Color.TRANSPARENT),0,5,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)

yourTextView.text = spannableString