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 |
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 | |
Int |
Returns a hyphenation preference. |
Int |
Gets the current line-break style. |
Int |
Gets the current line-break word style. |
Int |
hashCode() |
LineBreakConfig |
merge(config: LineBreakConfig) Generates a new |
String |
toString() |
Unit |
writeToParcel(dest: Parcel, flags: Int) Flatten this object in to a Parcel. |
Properties | |
---|---|
static Parcelable.Creator<LineBreakConfig!> |
Constants
HYPHENATION_DISABLED
static val HYPHENATION_DISABLED: Int
The hyphenation is disabled.
Value: 0
HYPHENATION_ENABLED
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
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
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
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
static val LINE_BREAK_STYLE_NONE: Int
No line-break rules are used for line breaking.
Value: 0
LINE_BREAK_STYLE_NORMAL
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
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
static val LINE_BREAK_STYLE_STRICT: Int
The most strict line-break rules are used for line breaking.
Value: 3
LINE_BREAK_STYLE_UNSPECIFIED
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
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
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
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
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
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
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
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 |
getLineBreakStyle
fun getLineBreakStyle(): Int
Gets the current line-break style.
getLineBreakWordStyle
fun getLineBreakWordStyle(): Int
Gets the current line-break word style.
Return | |
---|---|
Int |
The line-break word style to be used for text wrapping. Value is android.graphics.text.LineBreakConfig#LINE_BREAK_WORD_STYLE_NONE , android.graphics.text.LineBreakConfig#LINE_BREAK_WORD_STYLE_PHRASE , android.graphics.text.LineBreakConfig#LINE_BREAK_WORD_STYLE_UNSPECIFIED , or android.graphics.text.LineBreakConfig#LINE_BREAK_WORD_STYLE_AUTO |
merge
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
fun toString(): String
Return | |
---|---|
String |
a string representation of the object. |
writeToParcel
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 |