活動開始時,我希望TextView被向下滾動到可能的最後一行。在剛剛開始的時候,將TextView自動滾動到Activity中的最後一行
現在,當Activity開始時,我看到TextView顯示頂部的文本。 如何將TextView滾動到最後一行並從底部開始顯示它?
我目前使用
@Override
protected void initUI(Bundle savedInstanceState) {
logTextView = (EditText)findViewById(R.id.text);
ArrayList<Event> events = getAll();
StringBuilder sb = new StringBuilder(64*1024);
for (Event event : events) {
sb.append(event.toString());
sb.append("\n");
}
logTextView.setText(sb);
logTextView.setKeyListener(null);
logTextView.setFocusable(true);
}
int y = (textView.getLineCount() - 1) * textView.getLineHeight(); // the " - 5" should send it to the TOP of the last line, instead of the bottom of the last line
int visible = logTextView.getHeight() - (2* logTextView.getLineHeight());
if(visible < y) y -= visible;
logTextView.scrollTo(0, y);
使用logTextView.post(runnab le)runnable的run方法調用scrollTo方法 – pskink 2015-03-02 11:19:41