Tôi đã vật lộn với điều này trong hơn một tuần và cuối cùng đã tìm ra cách để làm cho công việc này!
Vấn đề của tôi là mọi thứ sẽ cuộn dưới dạng một 'khối'. Bản thân văn bản đã được cuộn, nhưng như một đoạn chứ không phải từng dòng. Điều này rõ ràng không làm việc cho tôi, bởi vì nó sẽ cắt đứt các dòng ở phía dưới. Tất cả các giải pháp trước đây không hiệu quả với tôi, vì vậy tôi tự tạo ra.
Đây là giải pháp đơn giản nhất cho đến nay:
Tạo một tệp lớp có tên: 'PerfectScrollableTextView' bên trong một gói, sau đó sao chép và dán mã này vào:
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.TextView;
public class PerfectScrollableTextView extends TextView {
public PerfectScrollableTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setVerticalScrollBarEnabled(true);
setHorizontallyScrolling(false);
}
public PerfectScrollableTextView(Context context, AttributeSet attrs) {
super(context, attrs);
setVerticalScrollBarEnabled(true);
setHorizontallyScrolling(false);
}
public PerfectScrollableTextView(Context context) {
super(context);
setVerticalScrollBarEnabled(true);
setHorizontallyScrolling(false);
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
if(focused)
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
@Override
public void onWindowFocusChanged(boolean focused) {
if(focused)
super.onWindowFocusChanged(focused);
}
@Override
public boolean isFocused() {
return true;
}
}
Cuối cùng thay đổi 'TextView' của bạn bằng XML:
Từ: <TextView
Đến: <com.your_app_goes_here.PerfectScrollableTextView
maxLines
yêu cầu bạn nhập một số tùy ý; Đây không phải là cái gì đó sẽ làm việc cho mọi kích thước màn hình và kích thước phông chữ? Tôi thấy đơn giản hơn khi chỉ gói nó bằng mộtScrollView
, nghĩa là tôi không phải thêm bất kỳ thuộc tính hoặc mã XML nào nữa (như đặt phương thức di chuyển).