【问题标题】:Android - Expand ellipsized TextViewAndroid - 展开椭圆的TextView
【发布时间】:2012-08-01 10:34:41
【问题描述】:

我正在尝试实现一个功能,当TextView 包含太多文本行时,用户点击按钮后它可以折叠成 2 行。预计当用户再次点击该按钮时,TextView 应显示其包含的全文。 在collapseView() 方法中,我使用setEllipsize 如下:

private void collapseView() {
        m_vwText.setMaxLines(2);
        m_vwText.setEllipsize(TruncateAt.END);
        m_vwExpandButton.setText(EXPAND);
    } 

所以我想知道我应该在我的expandView() 方法中做什么来显示TextView 中包含的所有行。请提前帮助和感谢。

【问题讨论】:

    标签: android textview expand collapse


    【解决方案1】:

    一个想法是将原始 TextView 值放入一个临时变量并保留在那里,并在 customView() 方法中使用它。

    例如:onCreate()

    String originalText=m_vwText.getText().toString().
    

    然后在您的expandView() 中,您只需使用originalText

    private void expandView(){
       m_vwText.setText(originalText);
    }
    

    【讨论】:

    • 谢谢,我试过了,但不知何故它不起作用(TextView 仍然显示椭圆形文本。)我会尝试找出问题所在。
    • 问题很可能是因为 TextView 保留了 collapseView() 的椭圆大小设置:m_vwText.setEllipsize(TruncateAt.END);。在 expandView() 中,您需要以某种方式重置此设置,然后设置原始文本。如果回答了您的问题,请将答案标记为已接受。
    • 奇怪的是,当我创建一个Toast 来尝试显示原始文本时,它可以很好地显示全文,但是我为m_vwText 拨打的电话setText 仍然无法显示全文。这让我很困惑。
    • 你能把显示 Toast 的代码贴在这里吗,以及你是如何为 m_vwText 制作的?提示:在 TextView 中显示原始文本之前,请尝试使用 setEllipsize(null) 清除椭圆大小。
    • 好的,我发现了问题:因为我使用setMaxLines(2),所以 TextView 中的最大行数始终为 2。我将其更改为一个非常大的数字,它工作得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 2013-09-09
    • 2013-03-12
    相关资源
    最近更新 更多