Android 8.0.0で、不正な位置でテキストが折り返される

Android 8.0.0でのみ、不正な位置でテキストが折り返される現象に遭遇したので、メモ。

こちらのチケットで報告されているように、Android Oreo 8.0.0のTextViewにはテキスト折り返しのバグが存在する。

文節の長い文章をTextViewを表示させた場合、TextViewを画面幅一杯に広げている場合でも以下のように8.0.0のみ右端に大きな余白が空いてしまう場合がある。

7.0 8.0.0 8.1.0
7.0 8.0.0 8.1.0

テキスト折り返しのルールは、Android 6.0で追加されたbreakStrategyプロパティによって制御できる。このルールは以下の三種類あり、デフォルトでは最も手厚いBREAK_STRATEGY_HIGH_QUALITYが利用される。

このうちデフォルトで用いられているBREAK_STRATEGY_HIGH_QUALITYによるテキスト折り返しについて8.0.0のみ実装にバグがあるようで、8.1.0ではこの点が修正されている。

8.0.0で発生するこのバグを迂回するためには、BREAK_STRATEGY_SIMPLEを明示的に指定する。

8.0.0 HIGH_QUALITY 8.0.0 SIMPLE 8.1.0 HIGH_QUALITY
8.0.0 HIGH_QUALITY 8.0.0 SIMPLE 8.1.0 HIGH_QUALITY
Built with Hugo
テーマ StackJimmy によって設計されています。