Programable Layout

29 views
Skip to first unread message

K.Asano

unread,
Feb 26, 2012, 11:31:35 PM2/26/12
to 日本Androidの会 新潟支部
前回、ボタンの自動生成では大変たすかりました。
私の作るものは自動生成をする必要があるものが大半です。条件により表示を変えていく必要があると言う意味で、そのためにlayoutをxmlを作るの
では無理があることが多いのです。デザイナーとプログラマーとの分業と言う意味では問題がない訳ではありませんが、クライアント条件により変更が多いと
予測されます。
そこで、プログラム上でLayoutを作成する場合の一覧マニュアルと、コツが有れば教えていただければ幸いです。
初歩的な事でしょうが不慣れなもので解決にいつも時間がかかりすぎます。ご教授いただければ幸いです。

淺野和夫

K.Asano

unread,
Apr 1, 2012, 8:14:25 PM4/1/12
to 日本Androidの会 新潟支部
自己レスです。
なんか、色々やっているうちに操作がわかってきました。
それでもxmlとプログラムで操作するのとでは同じ結果が出ない場合も
多々あるのではないかと自分の無力を棚において傲慢にも
言い切っています。まぁ、そう考えていかないと先にすすめませんので。

Nkzn

unread,
Apr 1, 2012, 8:25:34 PM4/1/12
to android-gr...@googlegroups.com

なかざんです

> それでもxmlとプログラムで操作するのとでは同じ結果が出ない場合も 
> 多々あるのではないかと自分の無力を棚において傲慢にも 
> 言い切っています。

xmlのほうが、SDK側で「いい感じ」に処理してくれてると思います。
動的生成だけで同じ結果を出すのは本当に難しいです。(というか僕には無理^^;)

僕はある程度の部品に分けて部品単位のxmlを作成しておいて、
LayoutInflaterでViewインスタンスを生成→動的に配置
といった手法を取っています。xmlの恩恵を少しだけ受けつつ、
動的にレイアウトを配置していく1つの手です。

添付した画像の例では、「日付+農作業名」をxmlで作成してあります。
LinearLayoutの中にorientation="horizontal"でTextViewを2個並べてあるだけの簡単なものです。
上記のxmlをLayoutInflaterでJavaコードから生成し、
TableLayoutのTableRowの中に、要素数の回数だけ動的に放り込んでいます。

ご参考までに。

--Yukiya Nakagawa

2012年4月2日月曜日9時14分25秒 UTC+9 K.Asano:
device-2012-03-31-044138.png

K.Asano

unread,
Apr 1, 2012, 10:23:16 PM4/1/12
to 日本Androidの会 新潟支部
ありがとうございました。
頭が固くなっていて、なかざんさんの手法はとても新鮮です。
LayoutInflaterは独自のdialogが必要で使いましたが、TableLayoutでの利用は
納得できます。
あまりにも汎用的なものを作るのは考え直した方が利口な気がします。
Programableでコードを書くと可視性が帰ってわかりにくくなるのも現実でして
あとで読み返すと錆び付いた頭に入れるのに手間取りすぎます。
なかざんさんが無理を言われているのに挑戦は時間の無駄と考え、機種依存性や
仕様の依存性で解決するのも大人の仕事と考えました。
ありがとうございました。
> device-2012-03-31-044138.png
> 241KViewDownload
Reply all
Reply to author
Forward
0 new messages