セパレータ

Androidに限らず、GUIのレイアウトを作成する場合、カテゴライズされた情報の単位を区切るために線(ここでは便宜的に「セパレータ」呼ぼう)を描画したいケースが多くある。
このような用途の場合、Java JFC/Swingや.NET WindowsForms等ではそれ専用のコンポーネントがあるのだが、Androidでは少なくとも用意されているように見えない。

しかし、実際には様々なアプリケーションでセパレータと思われるGUIが使用されているのが判る。

  • 例) Google カレンダーの詳細入力におけるセパレータ("場所"の上に描画されている水平線)

この"セパレータ"、どのように実装すれば良いのんだろう。ひょっとして都度、Canvasに描画するのか? とも思ったが(そんな訳ない)違った。
答えは簡単で、上記のショットのように線を引くだけならばViewクラスを以下のようにレイアウトに定義するだけだ。

  • layout.xmlの例
<TextView> 〜 </TextView>

<!-- セパレータの例 (色:白 線幅:1dp 底部マージン:2dp) --> 
<View android:id="@+id/Separator" 
      android:layout_width="wrap_content" 
      android:background="#DDFFFFFF" 
      android:layout_height="1dp" 
      android:layout_marginBottom="2dp">
</View>

<TextView> 〜 </TextView>

非常に簡単だ。


Viewクラスは全てのViewのルートクラスとしての意味合いしか無い、と勝手に思い込んでいたのだが、こういう使い方をするのだな。