addContentViewで表示したViewの消し方

4,346 views
Skip to first unread message

ロイド

unread,
Jul 6, 2009, 6:42:01 AM7/6/09
to 日本Androidの会
みなさん こんばんは ロイドです。

Activityを表示する際
onCreateでsetContentView(R.Layout.main)と指定し画面を表示しており
特定のKeyEventを受けた時に、addContentViewでViewを重ねて表示
操作が終わるとaddContentViewで追加したViewだけを消すような事がしたいのですが
addContentViewで表示したViewの消し方が分かりません。

どなたかご存知の方はご教授をお願いいたします。

ロイド

unread,
Jul 7, 2009, 12:04:38 AM7/7/09
to 日本Androidの会
みなさん こんにちは ロイドです。

表示・非表示に関して自己解決しました。

ViewのsetVisibilityを帰ると、非表示にすることができました。
しかし、AddContentViewしたViewの表示位置を変更することが出来ません。

AddContentViewには
LinearLayout layout = new LinearLayout(this);
addContentView(layout , new LinearLayout.LayoutParams
(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
でViewをaddしているのですが、表示位置が左上になっており、
setGravityを指定してみたのですが、表示位置に変更がありません。

どなたか表示位置の変更方法をご存知の方は、ご教授をお願いいたします。

村瀬透弥

unread,
Jul 12, 2009, 7:57:50 AM7/12/09
to 日本Androidの会
村瀬です。

layoutの領域がWRAP_CONTENTで指定されているため、領域自体が入力したテキストと同じ幅になり、setGravityを指定しても表
示位置が変更されないのだと思います。

以下のように setPadding で余白を入れると文字列の表示位置が移動しますが、これで問題ないでしょうか?
# 例では左に20、上に20ピクセルです。

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout layout = new LinearLayout(this);
addContentView(layout , new LinearLayout.LayoutParams
(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
TextView word = new TextView(this);
word.setPadding(20, 20, 0, 0);
word.setText("テスト");
layout.addView(word,new LinearLayout.LayoutParams
(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
Reply all
Reply to author
Forward
0 new messages