2017-02-04 13 views
8

Какой смысл ведущего края, как вЧто такое лидерство в Android?

документация для LeadingMarginSpansays

стиль абзаца затрагиваем ting the leading margin. В одном абзаце может быть несколько полей ; они будут отображаться в заказе , каждый из которых добавляет свою маржу к тем, которые перед ним. Верхняя граница находится справа для строк в абзаце справа налево.

Но на самом деле он не говорит, что такое главный запас.

Это как вкладка с отступом на первой строке абзаца? Или это, где весь абзац отступом? Я предполагаю, что это/lidɪŋ /, а не /lɛdɪŋ/ as in the space between lines.

Причина, по которой я задаюсь вопросом, заключается в том, что я пытаюсь создать свой собственный TextView со StaticLayout. Я имею в виду Layout и StaticLayout source code для идей. Я пытаюсь вырезать все ненужные части, но я не знал, что это было.

Вот несколько вопросов, которые также задают вопрос о превышении допустимого предела, но адеки, похоже, знают, что это значит.

Изображение было бы очень полезно, но не является строго необходимым.

ответ

9

Ведущий край относится к тому, сколько абзаца имеет отступ, как первая строка, так и последующие строки.

Следующие примеры должны сделать все понятным. 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 указывает, сколько пикселей будет отступать от остальных строк каждого абзаца.

enter image description here

В примере на левой абзацах первой линии на 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 рассказывает, сколько пикселей для отступа каждой строки каждого абзаца.

enter image description here

В этом примере отступы каждую строку на 200 пикселей.

LeadingMarginSpan span = new LeadingMarginSpan.Standard(200);