はじめに
皆さんの端末にはOreo来ましたか? 私のZenfone3には先週Oreoが降ってきました。基本的には問題ないのですが、いくつかのアプリで妙なことに気が付きました。
ワードラップがおかしいのです。明らかに禁則処理とは関係ないところで行末が折り返されています。
てことで
調べました。
APIレベル23で、TextViewに以下のメソッドが追加されました。
このメソッドでTextView/EditTextのワードラップアルゴリズムが変更可能になっています。
上記リファレンスによると、TextViewでは BREAK_STRATEGY_HIGH_QUALITY が、EditTextでは BREAK_STRATEGY_SIMPLE がデフォルト値として使用されます。
それぞれ、設定して長文を表示させたものが以下のスクショです。
<BREAK_STRATEGY_HIGH_QUALITY>
<BREAK_STRATEGY_SIMPLE>
HIGH_QUALITYでは行末の折り返しがおかしいことが分かります。
それで
このバグはAOSP由来のもので、Android 8.0 Emulatorでも同様に発生します。また、8.1では修正されている模様です。
<TextView
android:breakStrategy="simple"
/>
これで対策が出来ます。
ワードラップに拘る場合は、8.0に限りsetBreakStrategy()を呼び出してやる、などの対応で良いと思います。
以上です。