ConstraintLayout の constraintCircle を使って円系のレイアウトを作る

Thursday, April 26, 2018

ConstraintLayout 1.1.0 で constraintCircle という制約が追加されていました。これはある起点に対して円形に制約を付与できるものなので, 円形のレイアウトが ConstraintLayout 1 枚で実現できるようになります。

真ん中の ImageView を中心にして周りに 8 つ配置した様子

真ん中の ImageView を中心にして周りに 8 つ配置した様子

上で言う中心の View にある周りの要素たちは, 以下を指定することでレイアウトが決まります。

  • layout_constraintCircle で基準としたい View を指定
  • layout_constraintAngle で配置したい角度を指定
  • layout_constraintCircleRadius で基準の View から取る距離を指定

タップしたら円形の子メニューが出るようなレイアウトは View の onClickListener と View の VISIBLE を操作することで, これ 1 枚で書くことができますね。

タップしたら VISIBLE に変化させてみた様子

タップしたら VISIBLE に変化させてみた様子

今回は画面の中心に置いた View を基準にしてレイアウトを組んでみました。簡単に書くと以下のようなコードです。

日常

setText されている TextView の getLineCount() が 0 になる