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

Tod*_*odd 51 android android-popupwindow

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

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

Tod*_*odd 79

我基于此Google网上论坛帖子创建了一个工作示例.

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

  1. 创建一个布局XML,描述将在PopupWindow中呈现的视图.
  2. 通过膨胀布局XML来调用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>
Run Code Online (Sandbox Code Playgroud)

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); 
Run Code Online (Sandbox Code Playgroud)

  • 弹出窗口完全透明的原因在PopupWindow的javadoc中得到了回答:`弹出窗口不提供任何背景.这应该由内容视图处理.因此,弹出视图布局根应指定android:background =""属性. (15认同)
  • 你能解释一下"根容器"的含义吗?它是弹出窗口从哪里开始的? (4认同)
  • 当我尝试你的示例代码时,它似乎正在工作,但它真的很奇怪.弹出窗口必须出现,但它几乎就像几乎完全透明一样.我可以通过其中一个主GUI按钮看到我的TextView的鬼,但EditText和Button完全不可见.我查看了函数签名,找不到任何关于不透明度的内容.你能想到任何可能导致这种行为的事吗? (3认同)
  • "root container"这个词是什么意思? (2认同)