1

所以我在我的C#Android應用程序中有一個多行TextView。我使用這個作爲一種「狀態」記錄的..如何滾動到TextView上的最後一段文字?

所以,我可能有這樣的事情:

探測部件 正確的窗口小部件發現
配置部件

每一行可能需要幾秒鐘才能出現,因爲它相對較慢。

所以,我有一個TextView滾動型的內部,像這樣:

<ScrollView 
     p1:minWidth="100px" 
     p1:minHeight="100px" 
     p1:layout_width="fill_parent" 
     p1:layout_height="match_parent" 
     p1:id="@+id/scrollView1"> 
     <TextView 
      p1:id="@+id/terminalOutput" 
      p1:layout_width="fill_parent" 
      p1:layout_height="fill_parent" /> 
    </ScrollView> 

這工作得很好,我可以使用.Append方法只是追加到TextView的。然而,問題在於最終會出現如此多的狀態信息,導致文本出現在屏幕上。此時,您必須手動拖動滾動視圖才能讀取最新狀態消息。

我希望它能讓每當一段文字被追加時,它就會離開屏幕讓它向下滾動滾動視圖,這樣用戶就可以在不用手動滾動的情況下閱讀最新消息。

我該怎麼做?

這是我到目前爲止已經試過:

 Logger = new TextLogger((s) => 
      { 
      RunOnUiThread(() => 
          { 
       var textview=FindViewById<TextView>(Resource.Id.terminalOutput); 
       textview.Append(s + "\n"); 
       var scrollview=FindViewById<ScrollView>(Resource.Id.scrollView1); 
       scrollview.ScrollTo(0,scrollview.Bottom); 
       textview.ScrollTo(0, textview.Bottom); 

      }); 
     }); 

這類作品,但現在看來似乎從來沒有完全滾動到實際的底部。它滾動下來,但總是喜歡從底部2線而去,留下一些文字還隱藏

回答

0

使用ScrollView.FullScroll方法,而不是嘗試:

scrollview.FullScroll(Android.Views.FocusSearchDirection.Down) 
+0

我想這一點,但它仍然向下滾動只是2號線短的底部,導致一些文字仍然被切斷。這可能是緩存的東西嗎?我試過禁用緩存等,但這似乎也沒有幫助 – Earlz

相關問題