2012-03-22 20 views
2

我应该根据需要拆分长文本以显示在尽可能多的列中。例如,我有一个80行的文本,我想在两个文本视图中显示它,然后在另一个旁边显示更大的文本,每个文本的最大线数为60.任何有关这样做的建议?Android - 在列中拆分文本

回答

3

我知道这是一个老问题,但即使... 也许看看这里: http://www.accella.net/multi-column-text-displays-in-android/

你需要显示的文字为第一TextView的,然后得到了什么没有出现在那第一个textview,然后在第二个textview中显示,等等。 要从你的textview中看到“隐形”文字,下面是一些代码:

private String getInvisibleText(final TextView textView) { 
    String invisible = null; 
    int height = textView.getHeight(); 
    int scrollY = textView.getScrollY(); 
    Layout staticLayout = textView.getLayout(); 

    int lastVisibleLineNumber = staticLayout.getLineForVertical(scrollY+height); 
    int start = staticLayout.getLineEnd(lastVisibleLineNumber); 
    int end = staticLayout.getLineEnd(textView.getLineCount()-1); 

    if (textView.getText().toString() != null 
      && !textView.getText().toString().isEmpty() 
      && end > 0 
      && textView.getText().toString().length() >= end) { 
     invisible = textView.getText().toString().substring(start, end);  
    } 
    return invisible; 
} 
+0

不错的提示!可能在未来有用!谢谢! – 2013-02-04 08:34:14

+0

你能解决你最初的问题吗?你能以其他方式工作吗? (我也在寻找更好的方法;) – Rocel 2013-02-04 09:43:07