Всплывающее окно с дочерней галереей

#android #gallery #popupwindow

#Android #Галерея #всплывающее окно

Вопрос:

Я пытаюсь использовать всплывающее окно с галереей внутри, но при раздувании всплывающего окна я получаю следующую ошибку:

 ERROR/AndroidRuntime(31817): java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView
  

Означает ли это, что нет способа использовать галерею во всплывающем окне?

Спасибо

 btn_open_popup.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

        LayoutInflater inflater = (LayoutInflater) HomeActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View popup_container = inflater.inflate(R.layout.popup_container,null, false);

        final PopupWindow pw = new PopupWindow(popup_container, width, height, true);

        pw.showAtLocation(findViewById(R.id.home), Gravity.CENTER, 0,0);    

        ImageView btn_close_popup = (ImageView) popup_container.findViewById(R.id.btn_close_popup);
        btn_close_popup.setAlpha(120);

        btn_close_popup.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                pw.dismiss();
            }
        });
    }
});
  

popup_container.xml

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="295dp"
    android:layout_height="307dp" android:background="@drawable/bg_popup">

    <ImageView android:id="@ id/btn_close_popup"
        android:layout_width="25dp" android:layout_height="25dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true" android:src="#983742" />

    <Gallery android:id="@ id/popup_gallery"
        android:layout_width="fill_parent" android:layout_height="fill_parent">

        <ImageView android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:background="@drawable/popup_contact" />
        <ImageView android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:background="@drawable/popup_welcome" />
        <ImageView android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:background="@drawable/popup_useraccount" />
        <ImageView android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:background="@drawable/popup_geoloc" />

    </Gallery>

</RelativeLayout>
  

Ответ №1:

Это не обязательно ответ на ваш вопрос, но почему вы не используете диалоговое окно?. Оно красивее и проще в использовании.

Редактировать 1: Да, вы должны иметь возможность использовать галерею во всплывающем окне, я не уверен, почему вы не можете заставить ее работать.

Комментарии:

1. @июль Позвольте мне перефразировать, я все равно буду (хочу) вам помогать, мне просто нужно немного больше информации. Можете ли вы опубликовать полную трассировку стека?

2. @июль Хорошо, я просмотрел еще несколько вещей, попробуйте это. Не раздувайте представление контейнера, просто передайте его прямо во всплывающее окно. Затем используйте popupwindow.findViewById (…) для расширения ваших виджетов.

3. Спасибо, вы действительно помогли написать, что я должен иметь возможность использовать Галерею во всплывающем окне. Но потом я нашел github.com/ysamlan/horizontalpager , что упрощает все.