我开始在Android中编写电子书类型的程序,并且不知道Apple的UITextView的最佳替代方案。
它需要显示多行只读文本并且可以滚动。
答案 0 :(得分:3)
您已经知道这个课程 - 它是TextView
- 您可以将其调整为可滚动。
在XML视图模板中放置android:scrollbars="vertical"
:
<TextView
android:id="@+id/myText"
android:scrollbars="vertical"
在java代码中放置:
mTextView = (TextView) findViewById(R.id.myText);
mTextView.setMovementMethod(ScrollingMovementMethod.getInstance());
如果您希望TextView
在文字更改后自动滚动到底部,请添加如下代码:
mTextView.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
scrollToLastLine(mTextView);
}
private void scrollToLastLine(TextView tv) {
int scrollY = 0;
if (!TextUtils.isEmpty(tv.getText())) {
final int linesCount = tv.getLineCount();
if (linesCount > 0) {
scrollY = Math.max(0,
tv.getLayout().getLineTop(linesCount)
- tv.getHeight());
}
}
tv.scrollTo(0, scrollY);
}
});