是否有使用Android v2.0的PopupWindow类的简单示例?

时间:2009-12-28 03:37:29

标签: android android-popupwindow

我在线查看,但无法找到PopupWindow类的工作示例。我在网上找到的代码示例要么编译,要么不起作用,或者使用已被删除的方法(例如Activity.getViewInflate())

是否有一个显示PopupWindow的简单工作示例?

3 个答案:

答案 0 :(得分:79)

我基于this Google Groups post.

创建了一个工作示例

要创建一个简单的PopupWindow,您需要执行以下操作:

  1. 创建一个布局XML,描述将在PopupWindow中呈现的视图。
  2. 通过膨胀布局XML来调用PopupWindow,并为弹出窗口分配适当的“父视图”。
  3. 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); 
    

答案 1 :(得分:4)

AFAIK只有 AbsoluteLayout正常工作(请确认),如http://sree.cc/google/android/android-popup-window所示。我已经显示了弹出窗口,但是LinearLayout没有显示所有元素。但AbsoluteLayout已被弃用!

FrameLayout也有效,但组织视图是一场噩梦,因为官方文档说它只适用于持有一个视图。

此外,能够接收触摸事件,您需要这样做: setBackgroundDrawable(new BitmapDrawable());

Android popup window dismissal

进一步解释

答案 2 :(得分:-1)

你正在获得隐身,因为你没有设置你被夸大的布局的背景颜色。设置为android:background =“#778899”,绝对你可以看到的东西