View In Dialog TitleBar サンプル画像

DialogのTitleBarにViewを追加

Androidのダイアログタイトルバーの右側には空白の領域があると思いますが、このスペースにViewを追加するという方法を紹介したいと思います。

ここで紹介する方法ではカスタムレイアウトを作成せずにViewを追加します。

対応Androidバージョン

Android 2.1~Android 6.0

処理内容

この処理は、ダイアログの右側にButtonを追加する処理となっています。

ダイアログの表示後にfindViewByIdでタイトル領域のViewGroupとTextViewを取得しています。

ダイアログタイトルのTextViewにparams.weight = 1することによって追加したButtonが表示されるようになり、更に右寄せになります。

追加したButtonの横幅を大きく取りたい場合は下記のようなコードになります。

ダイアログタイトルのTextViewのwidthにWRAP_CONTENTを指定し、Buttonのweightに1を指定しています。

この処理を使用したサンプルプロジェクトをGitHubにて公開しています。

sfapps-jp/View-In-Dialog-TitleBar

注意点

Androidのダイアログのリソースが修正されて、ViewのIDが一致しなくなった場合は使用できなくなります。

開発にあたって

ダイアログでソート順を選択する際に、昇順と降順を選べる作りにしたいというのが作成のきっかけでした。

カスタムレイアウトを使用して作成すると他のダイアログとデザインを合わせるのが面倒だと思い、直接追加する方法を探しだして作成しました。

関連アプリ

ON/OFFモジュール
デベロッパー: SFApps
価格: 無料
スライドクリップボード ⇅
デベロッパー: SFApps
価格: 無料*
スライドクリップボード
デベロッパー: SFApps
価格: 無料*
ON/OFFモジュール
デベロッパー: SFApps
価格: 無料
スライドクリップボード ⇅
デベロッパー: SFApps
価格: 無料*