fix: editor auto breaking line if line is too long

This commit is contained in:
hyb1996
2018-02-22 14:28:03 +08:00
parent 0f35fe3a3a
commit 1861b5fa53
3 changed files with 18 additions and 0 deletions

View File

@@ -24,6 +24,7 @@ import android.graphics.Paint;
import android.graphics.Typeface;
import android.support.v7.widget.AppCompatEditText;
import android.text.Layout;
import android.text.method.ScrollingMovementMethod;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
@@ -63,6 +64,8 @@ public class CodeEditText extends AppCompatEditText {
setTextColor(Color.TRANSPARENT);
// 设置字体
setTypeface(Typeface.MONOSPACE);
setMovementMethod(ScrollingMovementMethod.getInstance());
setHorizontallyScrolling(true);
mTheme = Theme.getDefault(getContext());
}
@@ -231,4 +234,15 @@ public class CodeEditText extends AppCompatEditText {
mHighlightTokens = highlightTokens;
postInvalidate();
}
@Override
public void setSelection(int index) {
if (index < 0) {
index = 0;
}
if (index > getText().length()) {
index = getText().length();
}
super.setSelection(index);
}
}

View File

@@ -164,6 +164,9 @@ public class CodeEditor extends HVScrollView {
}
public void jumpTo(int line, int col) {
if (line >= mCodeEditText.getLayout().getLineCount() || line < 0) {
return;
}
mCodeEditText.setSelection(mCodeEditText.getLayout().getLineStart(line) + col);
}

View File

@@ -4,6 +4,7 @@
android:id="@+id/code_edit_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="horizontal"
android:textColor="@android:color/transparent"
android:textCursorDrawable="@drawable/code_edit_text_cursor"
android:textSize="15sp"/>