Есть ли простой пример класса PopupWindow с использованием Android v2. 0?


Я посмотрел в интернете и не смог найти рабочий пример класса PopupWindow. Примеры кода, которые я нашел в интернете, либо компилируются, но не работают, либо используют методы, которые с тех пор были удалены (например,Activity.getViewInflate()).

есть ли простой работающего пример, который отображает всплывающее окно?

3 51

3 ответа:

Я создал рабочий пример на основе это сообщение группы Google.

чтобы создать простое рабочее всплывающее окно, вам нужно будет сделать следующее:

  1. создать макет XML, который описывает представление, которое будет отображаться в PopupWindow.
  2. вызовите всплывающее окно, раздувая XML-файл макета, и назначьте соответствующее "родительское представление" всплывающему окну.

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 является устаревшим!

Так же работает, но организация просмотров-это кошмар, так как официальная документация говорит, что это хорошо только для проведения одного просмотра.

и чтобы иметь возможность получать касания события, вам нужно сделать это: setBackgroundDrawable(new BitmapDrawable ());

Как далее объясняется в Android всплывающее окно увольнение

вы получаете невидимость, потому что вы не установили цвет фона макета, к которому вы завышены.установите его как android: background= "#778899", и, безусловно, вы можете увидеть вещи