在我的应用程序中我使用3 AlignmentSpan.Standard:center,normal,opposite。为了简单起见,我们可以将这些段落命名为:左对齐段落 - 第一段,中央对齐段落 - 第二段,右对齐段落 - 第三段。
例如用户创建3段。之后,该用户使用LeadingMarginSpan.Standard获取第二段以获得缩进。当缩进应用时,第一段从EditText移出一定数量的px,第二段可见停留在中心。
当用户点击第一段时一切正常,所有段落都保持在所需位置,第二段保持缩进。如果点击第二段,所有段落将移至左侧
代码:
EditText et = (EditText)findViewById(R.id.et);
et.setText("ab\nab\nab");
AlignmentSpan.Standard normal = new AlignmentSpan.Standard(Layout.Alignment.ALIGN_NORMAL);
AlignmentSpan.Standard center = new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER);
AlignmentSpan.Standard opposite = new AlignmentSpan.Standard(Layout.Alignment.ALIGN_OPPOSITE);
et.getEditableText().setSpan(normal, 0, 3, Spanned.SPAN_PARAGRAPH);
et.getEditableText().setSpan(center, 3, 6, Spanned.SPAN_PARAGRAPH);
et.getEditableText().setSpan(opposite, 6, et.length(), Spanned.SPAN_PARAGRAPH);
LeadingMarginSpan.Standard indent = new LeadingMarginSpan.Standard(20);
et.getEditableText().setSpan(indent, 3,6, Spanned.SPAN_PARAGRAPH);
选择第一个对齐:
选择第二个对齐:
编辑:
https://www.youtube.com/watch?v=Ea9HJEmEeZA&feature=youtu.be