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線而去,留下一些文字還隱藏
我想這一點,但它仍然向下滾動只是2號線短的底部,導致一些文字仍然被切斷。這可能是緩存的東西嗎?我試過禁用緩存等,但這似乎也沒有幫助 – Earlz