Added in API level 33

LineBreakConfig


class LineBreakConfig : Parcelable
kotlin.Any
   ↳ android.graphics.text.LineBreakConfig

Specifies the line-break strategies for text wrapping.

See the line-break property for more information.

Summary

Nested classes

A builder for creating a LineBreakConfig instance.

Constants
static Int

The hyphenation is disabled.

static Int

The hyphenation is enabled.

static Int

No hyphenation preference is specified.

static Int

A special value for the line breaking style option.

static Int

The least restrictive line-break rules are used for line breaking.

static Int

No line-break rules are used for line breaking.

static Int

The most common line-break rules are used for line breaking.

static Int

The line break style that used for preventing automatic line breaking.

static Int

The most strict line-break rules are used for line breaking.

static Int

No line break style is specified.

static Int

A special value for the line breaking word style option.

static Int

No line-break word style is used for line breaking.

static Int

Line breaking is based on phrases, which results in text wrapping only on meaningful words.

static Int

No line break word style is specified.

Inherited constants
Public methods
Int

Boolean
equals(other: Any?)

Int

Returns a hyphenation preference.

Int

Gets the current line-break style.

Int

Gets the current line-break word style.

Int

LineBreakConfig

Generates a new LineBreakConfig instance merged with given config.

String

Unit
writeToParcel(dest: Parcel, flags: Int)

Flatten this object in to a Parcel.

Properties
static Parcelable.Creator<LineBreakConfig!>

Constants

HYPHENATION_DISABLED

Added in API level 35
static val HYPHENATION_DISABLED: Int

The hyphenation is disabled.

Value: 0

HYPHENATION_ENABLED

Added in API level 35
static val HYPHENATION_ENABLED: Int

The hyphenation is enabled. Note: Even if the hyphenation is enabled with a line break strategy LineBreaker#BREAK_STRATEGY_SIMPLE, the hyphenation will not be performed unless a single word cannot meet width constraints.

Value: 1

HYPHENATION_UNSPECIFIED

Added in API level 35
static val HYPHENATION_UNSPECIFIED: Int

No hyphenation preference is specified.

This is a special value of hyphenation preference indicating no hyphenation preference is specified. When overriding a LineBreakConfig with another LineBreakConfig with Builder#merge(LineBreakConfig) function, the hyphenation preference of overridden config will be kept if the hyphenation preference of overriding config is HYPHENATION_UNSPECIFIED.

val override = LineBreakConfig.Builder()
           .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_PHRASE)
           .build();  // UNSPECIFIED if no setHyphenation is called.
      val config = LineBreakConfig.Builder()
           .setHyphenation(LineBreakConfig.HYPHENATION_DISABLED)
           .merge(override)
           .build()
      // Here, config has HYPHENATION_DISABLED for line break config and
      // LINE_BREAK_WORD_STYLE_PHRASE for line break word style.
  

This value is resolved to HYPHENATION_ENABLED if this value is used for text layout/rendering.

Value: -1

LINE_BREAK_STYLE_AUTO

Added in API level 35
static val LINE_BREAK_STYLE_AUTO: Int

A special value for the line breaking style option.

The auto option for the line break style set the line break style based on the locale of the text rendering context. You can specify the context locale by android.widget.TextView#setTextLocales(LocaleList) or android.graphics.Paint#setTextLocales(LocaleList).

In the API Build.VERSION_CODES#VANILLA_ICE_CREAM, auto option does followings: - If at least one locale in the locale list contains Japanese script, this option is equivalent to LINE_BREAK_STYLE_STRICT. - Otherwise, this option is equivalent to LINE_BREAK_STYLE_NONE.

Note: future versions may have special line breaking style rules for other locales.

Value: 5

LINE_BREAK_STYLE_LOOSE

Added in API level 33
static val LINE_BREAK_STYLE_LOOSE: Int

The least restrictive line-break rules are used for line breaking. This setting is typically used for short lines.

Value: 1

LINE_BREAK_STYLE_NONE

Added in API level 33
static val LINE_BREAK_STYLE_NONE: Int

No line-break rules are used for line breaking.

Value: 0

LINE_BREAK_STYLE_NORMAL

Added in API level 33
static val LINE_BREAK_STYLE_NORMAL: Int

The most common line-break rules are used for line breaking.

Value: 2

LINE_BREAK_STYLE_NO_BREAK

Added in API level 35
static val LINE_BREAK_STYLE_NO_BREAK: Int

The line break style that used for preventing automatic line breaking. This is useful when you want to preserve some words in the same line by using android.text.style.LineBreakConfigSpan or android.text.style.LineBreakConfigSpan#createNoBreakSpan() as a shorthand. Note that even if this style is specified, the grapheme based line break is still performed for preventing clipping text.

Value: 4

LINE_BREAK_STYLE_STRICT

Added in API level 33
static val LINE_BREAK_STYLE_STRICT: Int

The most strict line-break rules are used for line breaking.

Value: 3

LINE_BREAK_STYLE_UNSPECIFIED

Added in API level 35
static val LINE_BREAK_STYLE_UNSPECIFIED: Int

No line break style is specified.

This is a special value of line break style indicating no style value is specified. When overriding a LineBreakConfig with another LineBreakConfig with Builder#merge(LineBreakConfig) function, the line break style of overridden config will be kept if the line break style of overriding config is LINE_BREAK_STYLE_UNSPECIFIED.

val override = LineBreakConfig.Builder()
           .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_PHRASE)
           .build();  // UNSPECIFIED if no setLineBreakStyle is called.
      val config = LineBreakConfig.Builder()
           .setLineBreakStyle(LineBreakConfig.LINE_BREAK_STYLE_STRICT)
           .merge(override)
           .build()
      // Here, config has LINE_BREAK_STYLE_STRICT for line break config and
      // LINE_BREAK_WORD_STYLE_PHRASE for line break word style.
  

This value is resolved to LINE_BREAK_STYLE_NONE if the target SDK version is API Build.VERSION_CODES#UPSIDE_DOWN_CAKE or before and this value is used for text layout/rendering. This value is resolved to LINE_BREAK_STYLE_AUTO if the target SDK version is API Build.VERSION_CODES#VANILLA_ICE_CREAM or after and this value is used for text layout/rendering.

Value: -1

LINE_BREAK_WORD_STYLE_AUTO

Added in API level 35
static val LINE_BREAK_WORD_STYLE_AUTO: Int

A special value for the line breaking word style option.

The auto option for the line break word style does some heuristics based on locales and line count.

In the API Build.VERSION_CODES#VANILLA_ICE_CREAM, auto option does followings: - If at least one locale in the locale list contains Korean script, this option is equivalent to LINE_BREAK_WORD_STYLE_PHRASE. - If not, then if at least one locale in the locale list contains Japanese script, this option is equivalent to LINE_BREAK_WORD_STYLE_PHRASE if the result of its line count is less than 5 lines. - Otherwise, this option is equivalent to LINE_BREAK_WORD_STYLE_NONE.

Note: future versions may have special line breaking word style rules for other locales.

Value: 2

LINE_BREAK_WORD_STYLE_NONE

Added in API level 33
static val LINE_BREAK_WORD_STYLE_NONE: Int

No line-break word style is used for line breaking.

Value: 0

LINE_BREAK_WORD_STYLE_PHRASE

Added in API level 33
static val LINE_BREAK_WORD_STYLE_PHRASE: Int

Line breaking is based on phrases, which results in text wrapping only on meaningful words.

Support for this line-break word style depends on locale. If the current locale does not support phrase-based text wrapping, this setting has no effect.

Value: 1

LINE_BREAK_WORD_STYLE_UNSPECIFIED

Added in API level 35
static val LINE_BREAK_WORD_STYLE_UNSPECIFIED: Int

No line break word style is specified. This is a special value of line break word style indicating no style value is specified. When overriding a LineBreakConfig with another LineBreakConfig with Builder#merge(LineBreakConfig) function, the line break word style of overridden config will be kept if the line break word style of overriding config is LINE_BREAK_WORD_STYLE_UNSPECIFIED.

val override = LineBreakConfig.Builder()
           .setLineBreakStyle(LineBreakConfig.LINE_BREAK_STYLE_STRICT)
           .build();  // UNSPECIFIED if no setLineBreakWordStyle is called.
      val config = LineBreakConfig.Builder()
           .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_PHRASE)
           .merge(override)
           .build()
      // Here, config has LINE_BREAK_STYLE_STRICT for line break config and
      // LINE_BREAK_WORD_STYLE_PHRASE for line break word style.
  
This value is resolved to LINE_BREAK_WORD_STYLE_NONE if the target SDK version is API Build.VERSION_CODES#UPSIDE_DOWN_CAKE or before and this value is used for text layout/rendering. This value is resolved to LINE_BREAK_WORD_STYLE_AUTO if the target SDK version is API Build.VERSION_CODES#VANILLA_ICE_CREAM or after and this value is used for text layout/rendering.

Value: -1

Public methods

describeContents

Added in API level 35
fun describeContents(): Int
Return
Int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or android.os.Parcelable#CONTENTS_FILE_DESCRIPTOR

equals

Added in API level 33
fun equals(other: Any?): Boolean
Parameters
obj the reference object with which to compare.
Return
Boolean true if this object is the same as the obj argument; false otherwise.

getHyphenation

Added in API level 35
fun getHyphenation(): Int

Returns a hyphenation preference.

Return
Int A hyphenation preference. Value is android.graphics.text.LineBreakConfig#HYPHENATION_UNSPECIFIED, android.graphics.text.LineBreakConfig#HYPHENATION_ENABLED, or android.graphics.text.LineBreakConfig#HYPHENATION_DISABLED

hashCode

Added in API level 33
fun hashCode(): Int
Return
Int a hash code value for this object.

merge

Added in API level 35
fun merge(config: LineBreakConfig): LineBreakConfig

Generates a new LineBreakConfig instance merged with given config. If values of passing config are unspecified, the original values are kept. For example, the following code shows how line break config is merged.

val override = LineBreakConfig.Builder()
           .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_PHRASE)
           .build();  // UNSPECIFIED if no setLineBreakStyle is called.
      val config = LineBreakConfig.Builder()
           .setLineBreakStyle(LineBreakConfig.LINE_BREAK_STYLE_STRICT)
           .build();
 
      val newConfig = config.merge(override)
      // newConfig has LINE_BREAK_STYLE_STRICT of line break style and
      LINE_BREAK_WORD_STYLE_PHRASE of line break word style.
  

Parameters
config LineBreakConfig: an overriding config. This value cannot be null.
Return
LineBreakConfig newly created instance that is current style merged with passed config. This value cannot be null.

toString

Added in API level 33
fun toString(): String
Return
String a string representation of the object.

writeToParcel

Added in API level 35
fun writeToParcel(
    dest: Parcel,
    flags: Int
): Unit

Flatten this object in to a Parcel.

Parameters
dest Parcel: This value cannot be null.
flags Int: Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of android.os.Parcelable#PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES

Properties

CREATOR

Added in API level 35
static val CREATOR: Parcelable.Creator<LineBreakConfig!>