LoginSignup
25
21

More than 5 years have passed since last update.

AutosizingTextViewを使う

Last updated at Posted at 2017-11-09

AutosizingTextView使ってみました。
軽く使い方と、ちょっとハマったところがあったので自分への戒めのためにまとめておきます。
まったく知らないよってかたはこちらを読むとすぐ使えますよ。▷Android Developer/Autosizing TextView

AutosizingTextViewとは

Android O (API Level 26)から、レイアウトサイズに合わせてフォントサイズを自動調節してくれるTextViewが使えるようになりました。

text_view.xml
<TextView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:autoSizeTextType="uniform"  <!-- この一行を加える -->
/>

default設定のまま使用するのであれば,上記をTextViewに追記すればOKです。

API26より以前のバージョンでも対応したい場合には

text_view_pre26.xml
<android.support.v7.widget.AppCompatTextView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    app:autoSizeTextType="uniform"  <!-- この一行を加える -->
/>

こちらを使いましょう。

その他使い方はAndroid Developerに書いてるので割愛しますが、需要あれば日本語でまとめます。

Tips

wrap_contentは使っちゃダメ

widthかheightどっちか固定値入れておけば、固定値使っていい感じに動くのかな?と思っていました。

layout_width="wrap_content"を指定(ダメな例)

スクリーンショット 2017-10-31 14.32.45.png

こんな風にギュってなっちゃいます

layout_height="wrap_content"を指定(ダメな例)

スクリーンショット 2017-10-31 14.33.09.png

言うこと聞いてくれません

良い例

スクリーンショット 2017-10-31 14.32.25.png

wrap_contentを使わなければ、ちゃんと動きます。Autosizingさせたいときはwrap_contentは使わないようにしましょう。
ちなみに貼ったリンクにはちゃんと書かれてありました。

スクリーンショット 2017-11-09 19.07.51.png

ちゃんと読まないとダメですね

さいごに

領域さえ指定すれば,フォントサイズ(sp)を気にせずに開発できる上に,デザインするときもマージンを気にするだけでよくなるので,楽になりそうではありますね。

最近までandroid:singleLineがDeprecatedされてること知らなくて(無知),一行に収める制約入れたくてつけてたら
「AutoSizing反応しないやん!」ってなりました...。

25
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
21