Я пытаюсь показать фрагмент кода в текстовом виде. Но я не могу сделать длинную текстовую строку автоматической прокруткой по горизонтали в текстовом виде.Как отобразить фрагмент кода в текстовом виде?
код:
TextView code = new TextView(getActivity());
TableRow.LayoutParams paramsExample = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,TableRow.LayoutParams.WRAP_CONTENT);
code.setBackgroundColor(getResources().getColor(android.R.color.black));
code.setPadding(5, 5, 5, 5);
code.setTextColor(getResources().getColor(android.R.color.white));
code.setTextSize(TypedValue.COMPLEX_UNIT_SP,12);
code.setClickable(true);
code.setLayoutParams(paramsExample);
setCode(code, R.raw.codesnippet);
ll.addView(code);
Я создаю этот TextView в fragment.fragment_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment_ll"
android:orientation="vertical">
</LinearLayout>
и я начинаю этот фрагмент в деятельности в coordinatorlayout> nestedscrollview> LinearLayout (контейнер для фрагментов)
размер каждой ширины «соответствует родительскому»
это метод setcode:
public void setCode(TextView tv, int rawId) {
Resources res = getResources();
BufferedReader input = new BufferedReader(new InputStreamReader(
res.openRawResource(rawId)));
StringBuffer sb = new StringBuffer();
try {
String line;
while ((line = input.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Spanned spannedCode = Html.fromHtml(sb.toString());
tv.setText(spannedCode);
}
я получил этот фрагмент кода (codesnippet.txt) из VIM, toHtml.
но он не прокручивается по горизонтали. Что делать, чтобы сделать это автоматически прокручиваемым по горизонтали, как веб-просмотр?
после HorizontalScrollView и code.setHorizontallyScrolling (правда):
Горизонтальная прокрутка штраф в отдельных line.I работы необходимо отобразить фрагмент кода в виде блока.
Я не уверен, если я получил это право, но, возможно, у вас нет новой строки в тексте? обычно это \ n, но sinve вы используете Html.fromHtml, тогда у вас должно быть
для новой строки. И с этим используйте code.setHorizontallyScrolling, и все должно быть хорошо. –