2014-11-17 3 views
0

Я сделал прокрутку TextView, если она имеет более 5 строк. Теперь я хочу динамически в своем java-коде обнаружить, что тот же самый TextView прокручивается или может прокручиваться, поэтому я могу изменить видимость вида под ним.Как проверить, прокручивается ли TextView

Я пробовал:

textView.setText(description); 
textView.setMovementMethod(new ScrollingMovementMethod()); 

if(textView.getLineCount() > 5) 
{ 
    view.setVisibility(View.VISIBLE); 
} 

но textView.getLineCount() равно 0.

Также попробовал функцию canScrollHorizontally(int direction) но документация Google, не говорит, какой параметр следует использовать.

+0

http://stackoverflow.com/a/12037459/2649012 –

+0

Я звоню getLineCount() после того, как текст оказывается – tvieira

+0

http://stackoverflow.com/questions/3528790/textview-getlinecount-always-0-in-android это может быть полезно – enadun

ответ

2

Вы получаете НОЛЬ, потому что вы пытаетесь взять результат в не UI потоке.

Попробуйте

textView.post(new Runnable() { 

    @Override 
    public void run() { 

    int lineCount = textView.getLineCount(); 
    if(lineCount >=5) 
     textView.setVisibility(View.VISIBLE); 
    } 
}); 
+0

yup, который сделал для меня. Я собирался опубликовать это как ответ, но вы были быстрее;) – tvieira

+1

приветствую :) –

-1

Используйте нить для того, чтобы получить LineCount:

@Override 
public void run() { 
    while(textView.getLineCount() == 0){ 
    } 
    textview_lineCount = textView.getLineCount(); 

} 
-1

Предполагая, что ваш TextView ребенок из ScrollView и вы хотите автоматически прокручивание TextView после его добавляется и теперь содержит больше текста, чем может показать, вы можете сделать следующее:

TextView t = (TextView) findViewById(R.id.someTextView); 
t.append("Some text"); 

ScrollView s; 
if (s.canScrollVertically(1)) { 
    logScroll(s); 
} 

private void logScroll(final ScrollView s) { 
    s.post(new Runnable() { 
     @Override 
     public void run() { 
      s.fullScroll(ScrollView.FOCUS_DOWN); 
     } 
    }); 
} 
Смежные вопросы