(2011-07の一覧)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011-07-13 Wed (他の年の同じ日: 2005 2006)
PopupWindow#showAtLocation()が表示されない?
2011-07-13-1 / カテゴリ: [Android] / [permlink]
newした後、showAsDropDown()だけなら表示されるのに、showAtLocation()だけ叩いても表示されなかった。
いろいろ試してみると setWindowLayoutMode() が必要なのがわかった。
こんな感じ
ちなみにdismiss()せずにActivityを閉じると例外(?)が発生するので注意
いろいろ試してみると setWindowLayoutMode() が必要なのがわかった。
こんな感じ
mPopup = new PopupWindow(this);
mPopup.setWindowLayoutMode(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
mPopup.setFocusable(true); // これがないとタッチとかできない
// 必要に応じて
mPopup.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
mPopup.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
// ポップアップで表示するビューの設定
mPopup.setContentView(view);
if (mPopup.isShowing()) {
// 開いてたら閉じる
mPopup.dismiss();
mPopup = null;
}
else {
// 開いてなければ表示
mPopup.showAtLocation(base, Gravity.NO_GRAVITY, x, y);
}
ちなみにdismiss()せずにActivityを閉じると例外(?)が発生するので注意
ERROR/WindowManager(13219): Activity (パッケージ名).(クラス名) has leaked window android.widget.PopupWindow$PopupViewContainer@40533870 that was originally added here ERROR/WindowManager(13219): android.view.WindowLeaked: Activity (パッケージ名).(クラス名) has leaked window android.widget.PopupWindow$PopupViewContainer@40533870 that was originally added here :
[
コメント ]
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2013-05-02 16:12
