领先 margin 是什么意思
LeadingMarginSpan
LeadingMarginSpan.Standard
LeadingMarginSpan.LeadingMarginSpan2
LeadingMarginSpan
says的文档但是它并没有真正说出领先优势是什么。
就像该段第一行的制表符缩进一样吗?还是缩进整个段落?我假设它是/lidɪŋ/而不是/lɛdɪŋ/ as in the space between lines。
我想知道的原因是我正在尝试使用StaticLayout制作自己的TextView。我指的是Layout和StaticLayout source code的想法。我正在尝试删除所有不必要的部分,但我不知道这是什么。
这里有一些关于领先利润的特殊问题,但提问者似乎知道这意味着什么。
图像确实有帮助,但并非绝对必要。
最佳答案
首行距是指段落的首行和后续行都缩进了多少。
以下示例将使所有内容变得清晰。以下示例中的TextViews包含两段文本(即,它们包括\n
字符)。
这是使用的样板代码:
LeadingMarginSpan span = ... // substitute this line with the examples below
TextView textView = (TextView) findViewById(R.id.textView) ;
SpannableString spannableString = new SpannableString("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.");
spannableString.setSpan(span, 0, spannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannableString);
LeadingMarginSpan.Standard
有两个主要的构造函数。
第一个构造函数:
LeadingMarginSpan.Standard(int first, int rest)
first
告诉每个段落的第一行缩进多少像素。 rest
告诉每个段落其余行缩进多少像素。 左边的示例将第一行缩进20像素,将其余行缩进100像素。 (没有填充已添加到
TextView
。)LeadingMarginSpan span = new LeadingMarginSpan.Standard(20, 100); // left example
右边的示例显示第一行缩进100,而其余行根本不缩进。
LeadingMarginSpan span = new LeadingMarginSpan.Standard(100, 0); // right exmaple
第二个构造函数:
LeadingMarginSpan.Standard(int every)
every
告诉每个段落每行缩进多少像素。 本示例使每行缩进200像素。
LeadingMarginSpan span = new LeadingMarginSpan.Standard(200);