我为此奋斗了一个多星期,终于弄清楚了如何使它工作!
我的问题是,所有内容都将滚动为一个“块”。文本本身正在滚动,但滚动而不是逐行滚动。这显然对我不起作用,因为它会切断底部的线条。以前的所有解决方案都不适用于我,因此我自己制作了自己的解决方案。
到目前为止,这是最简单的解决方案:
在包中创建一个名为“ PerfectScrollableTextView”的类文件,然后将此代码复制并粘贴到:
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;
}
}
最后,以XML更改“ TextView”:
从: <TextView
至: <com.your_app_goes_here.PerfectScrollableTextView
maxLines
需要您输入一个任意数字;这不是适用于所有屏幕尺寸和字体大小的东西吗?我发现仅用包裹起来就更简单了ScrollView
,这意味着我不必添加任何其他XML属性或代码(例如设置移动方法)。