# Package icyllis.modernui.text

package icyllis.modernui.text
Provides classes used to render or track text and text spans on the screen, which include text style controlling, line break, and several utility classes. All these are Unicode-based.

You can use these classes to design your own widgets that manage text, to handle arbitrary text spans for changes, or to handle drawing yourself for an existing widget.

- Related Packages
  Package
  Description
  icyllis.modernui
  icyllis.modernui.text.method
  icyllis.modernui.text.style
- Class
  Description
  BoringLayout
  A BoringLayout is a very simple Layout implementation for text that fits on a single line and is all left-to-right characters.
  BoringLayout.Metrics
  CharSequenceIterator
  An implementation of `CharacterIterator` that iterates over a given CharSequence.
  Directions
  Stores information about bidirectional (left-to-right or right-to-left) text within the layout of a line in rendering order.
  DynamicLayout
  DynamicLayout.Builder
  Builder for dynamic layouts.
  Editable
  This is the interface for text whose content and markup can be changed (as opposed to immutable text like Strings).
  Editable.Factory
  Factory used by TextView to create new `Editables`.
  GetChars
  Implement this interface if your `CharSequence` has a `String.getChars(int, int, char[], int)` method like the one in `String` that is faster than calling `CharSequence.charAt(int)` multiple times.
  InputFilter
  InputFilters can be attached to `Editables` to constrain the changes that can be made to them.
  InputFilter.LengthFilter
  This filter will constrain edits not to make the length of the text greater than the specified length.
  Layout
  A base class that manages text layout in visual elements on the screen, which is designed for text pages at high-level.
  Layout.Alignment
  MeasuredParagraph
  MeasuredParagraph provides text information for rendering purpose.
  NoCopySpan
  This interface should be added to a span object that should not be copied into a new Spanned when performing a slice or copy operation on the original Spanned it was placed in.
  NoCopySpan.Concrete
  Convenience equivalent for when you would just want a new Object() for a span but want it to be no-copy.
  PackedIntVector
  PackedIntVector stores a two-dimensional array of integers, optimized for inserting and deleting rows and for offsetting the values in segments of a given column.
  PackedObjectVector<E>
  ParcelableSpan
  A special kind of `Parcelable` for objects that will serve as text spans.
  PrecomputedText
  A text which has the character metrics data.
  PrecomputedText.ParagraphInfo
  PrecomputedText.Params
  The information required for building `PrecomputedText`.
  PrecomputedText.Params.Builder
  A builder for creating `PrecomputedText.Params`.
  PrecomputedText.Params.CheckResultUsableResult
  Selection
  Utility class for manipulating cursors and selections in CharSequences.
  Spannable
  This is the interface for text to which markup objects can be attached and detached.
  Spannable.Factory
  Factory used by `TextView` to create new `Spannables`.
  SpannableString
  This is the class for text whose content is immutable but to which markup objects can be attached and detached.
  SpannableStringBuilder
  This is the class for text whose content and markup can both be changed.
  Spanned
  This is the interface for text that has markup objects attached to ranges of it.
  SpannedString
  This is the class for text whose content and markup are immutable.
  SpanSet<E>
  A cached set of spans.
  SpanWatcher
  When an object of this type is attached to a Spannable, its methods will be called to notify it that other markup objects have been added, changed, or removed.
  StaticLayout
  StaticLayout is a Layout for text that will not be edited after it is laid out.
  StaticLayout.Builder
  Builder for static layouts.
  TabStops
  TextDirectionHeuristic
  Interface for objects that use a heuristic for guessing at the paragraph direction by examining text.
  TextDirectionHeuristics
  TextLine
  Represents a line of styled text, for measuring in visual order and for rendering.
  TextPaint
  This class holds data used during text measuring and drawing at higher levels.
  TextShaper
  Provides conversion from a text into glyph array.
  TextShaper.GlyphsConsumer
  A consumer interface for accepting text shape result.
  TextUtils
  TextUtils.EllipsizeCallback
  TextUtils.TruncateAt
  Where to truncate.
  TextWatcher
  When an object of this type is attached to an Editable, its methods will be called when the text is changed.
  Typeface
  The Typeface specifies a set of font families that can be used in Paint.