オンラインで見たところ、PopupWindowクラスの実用的な例を見つけることができませんでした。私がオンラインで見つけたコード例は、コンパイルしても動作しないか、または削除されたメソッド(Activity.getViewInflate())
など)を使用しています。
PopupWindowを表示する単純なworkingの例はありますか?
このGoogleグループの投稿 に基づいて実用的な例を作成しました
シンプルで機能するPopupWindowを作成するには、次のことを行う必要があります。
popup_example.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:padding="10dip"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
>
<TextView
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="10dip"
Android:text="Test Pop-Up"
/>
</LinearLayout>
Javaコード:
LayoutInflater inflater = (LayoutInflater)
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
PopupWindow pw = new PopupWindow(
inflater.inflate(R.layout.popup_example, null, false),
100,
100,
true);
// The code below assumes that the root container has an id called 'main'
pw.showAtLocation(this.findViewById(R.id.main), Gravity.CENTER, 0, 0);
私の知る限り、AbsoluteLayoutは動作します(pls確認) http://sree.cc/google/Android/android-popup -window 。ポップアップを右に表示しましたが、LinearLayoutはすべての要素を表示していませんでした。しかし、AbsoluteLayoutは非推奨です!
FrameLayoutも機能しますが、公式ドキュメントでは1つのビューを保持するのに適しているだけであるため、ビューの整理は悪夢です。
また、タッチイベントを受信できるようにするには、これを行う必要があります:setBackgroundDrawable(new BitmapDrawable()) ;
Android popup window dismissal でさらに説明されているように