Popping up window android

Popupwindow is a floating view that is displayed on top of an activity. Android provides a PopupWindow class for creating a popup window with the custom design.

It is present from the first versions of the API, but not as popular as other dialog boxes due to the need for additional configuration, which is not always necessary.

Android PopupWindow very useful when you want to show the dialog just over the view items. For Example you can able to show the dialog near to the more option of your cardview / button view.

Check out my popup window android example demo.

Now we are going to create popup window showed in the popupwindow example video.

1. Adding Dependencies

In this example, we are going to show list of items in the recyclerview. So, we need recyclerview and cardview dependencies.

I have explained about using recyclerview and cardview in separate post. Please check it in the links.

2. Create PopupWindow Layouts

As mentioned in the design, First we need to create popupWindow layout with recyclerview.

Recyclerview need a adapter view to hold the popup items. So, we need to create adapter layout file.

3. Implement PopupWindow With Data

We are using recyclerview in the popup window. so, we need model class to hold the data.

Also, we need to create adpater to set popup items.

In the Adapter, set the click listener interface for the popup window click callbacks.

Already, we have created layouts and adapter for the PopupWindows. Lets create the PopupWindow.

In the above code, I am using adapter.setOnClick to pass the implementation of the RecyclerviewCallbacks interface to receive the callbacks of the popup window items.

4. Show / Hide the PopupWindow

Now, our popup window is ready to display. So, whenever we need to show the popup window. call the below code.

To dismiss the popup window,

That’s it. Now we can able to show and hide the popup window in android.

Download the example code from Github.

Читайте также:  Badland premium для андроид

Thanks for reading.

Please try this with example and let me know your feedback in comments.

Источник

Android Popup Window Animation Example

The android.widget.PopupWindow class is another class that provides a popup window function besides AlertDialog. There is something different between them. This example will show you how to use the android.widget.PopupWindow in the android application.

1. PopupWindow And AlertDialog Difference.

  1. The main difference between AlertDialog and PopupWindow is the location of the display. The AlertDialog is fixed display on the screen, while PopupWindow can be displayed anywhere on the main screen.
  2. PopupWindow is a pop-up control that can be used to display any View and float at the top of the activity.
  3. Through PopupWindow we can achieve a variety of pop-up window effects such as information display or UI interaction.
  4. The PopupWindow custom layout is more convenient, and the display position is freedom there is no restriction.

2. PopupWindow Methods.

2.1 PopupWindow Constructor Method.

  1. public PopupWindow (Context context).
  2. public PopupWindow(View contentView) .
  3. public PopupWindow(View contentView, int width, int height) .
  4. public PopupWindow(View contentView, int width, int height, boolean focusable)
  5. Please Note: There are four constructors, but the basic three parameters for generating a PopupWindow must be set are: View contentView, int width, int height; You can’t pop a PopupWindow without any one of them!
  6. So, if you use the first constructor, the complete construct code should look like this.

2.2 PopupWindow Display Methods.

  1. showAsDropDown(View anchorView): Show popup at the position of the relative control (lower left), no deviation.
  2. showAsDropDown(View anchorView, int xOffSet, int yOffSet): Show popup at the position of the relative control. xOffSet represents the offset of the x-axis, positive to the left, negative to the right. yOffSet represents the offset of the y-axis, positive to the down, negative to the up.
  3. showAtLocation(View parentView, int gravity, int xOffSet, int yOffSet): Show popup at the location specified by the gravity value. ( Gravity.CENTER, Gravity.BOTTOM) etc.

2.3 PopupWindow Other Methods.

  1. public void dismiss(): Close popup window when needed.
  2. public void setFocusable(boolean focusable): Let PopupWindow get the focus, then it will be able to handle the click event of the physical button, otherwise the event will be passed up by the Activity. If there is an Editor in PopupWindow, the focusable value must be true.

2.4 Add Animation To PopupWindow.

  1. PopupWindow.setAnimationStyle(R.style.ContextMenuAnim) can be used to add animation to a popup window.
  2. The above popup_window_animation_phone is a style defined in app / res / values / styles.xml file.
  3. The fade_in_animation and fade_out_animation are also custom-defined animation XML file saved under app / res / animator folder.
  4. fade_in_animation.xml
  5. Below are the create animation XML file steps.
  6. Right-click the app/res folder.
  7. Click New —> Android resource file menu item in the popup menu list.
  8. Input the File name and choose Animator in the Resource type drop-down list.

3. Android PopupWindow Example.

Источник

Русские Блоги

Android PopupWindow простое объяснение

Эта статья из короткого книжного блога «Амин Кирен», пожалуйста, укажите источник для перепечатки или цитирования.

Читайте также:  Backup and restore для android

Предисловие

Примечание: для удобства написания всплывающее окно в этой статье обозначает PopupWindow.

обзор
PopupWindow отображается в виде всплывающего окна в пакете android.widget. Официальное описание документа контроля
«Элемент управления всплывающего окна, который можно использовать для отображения любого представления (View), и оно будет плавать поверх текущей операции (деятельности)».

PopupWindow позволяет нам реализовывать различные пользовательские элементы управления, такие как всплывающие окна, такие как menu и alertstdialog.

Сравнение с Диалогом
Различия между AlertDialog и PopupWindow:

Позиция AlertDialog фиксирована, а позиция PopupWindow настроена
AlertDialog является неблокирующим потоком, а PopupWindow — блокирующим потоком.

Всплывающее окно

2. Простой в использовании-шоу

Давайте сначала покажем всплывающее окно.

Два, 1 показывают три шага всплывающего окна

Проще говоря, как выглядит наше всплывающее окно, нам нужно использовать файл макета XML, чтобы четко определить.
Простейшая трилогия

1. Напишите файл макета элемента
2. Используйте конструктор всплывающих окон для передачи элемента в качестве параметра.
3. Вызвать метод showAsDropDown или showAtLocation всплывающего окна, чтобы отобразить всплывающее окно.

Вышеприведенные три являются наиболее простыми и простыми, но этого недостаточно. Через вышеописанные и три шага мы просто показываем всплывающее окно, но как исчезнуть и как щелкнуть по подпункту, чтобы создать эффект, который нам еще предстоит указать. Это происходит медленно.

Сначала выполните три шага выше, чтобы прикрепить простой пример кода:

Трилогия первая:
напишите файл макета

Трилогия Вторая:
Ссылка с конструктором

Вызовите метод, чтобы показать всплывающее окно

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

Трилогия закончилась, так что не волнуйтесь, давайте посмотрим на три шага
1. Конструктор
2. Как отобразить всплывающее окно

Два, 2 конструктора PopupWindow

Есть 5 конструкторов PopupWindow.

Самый длинный параметрPublic PopupWindow (View contentView, int width, int height, boolean focusable) является фокусом ежедневного использования, остальные не очень важны.

Первый тип, пустое всплывающее окно без фокуса

Во-вторых, нет фокуса не может указать всплывающее окно

Третье, пустое всплывающее окно

Четвертый тип, всплывающее без фокуса

На самом деле первые 4 типа не являются общими, наиболее распространенным является последний тип, пятый тип
Пятый тип: вы можете указать отца, должность и наличие фокуса.

public PopupWindow(View contentView, int width, int height, boolean focusable)
Этот метод строительства имеет смысл! !

Прикрепите исходный код Google

Два, 2 метода отображения: showAsDropDown и showAtLocation

якорь означает якорь

Метод первый:
showAsDropDown(View anchor)
Положение нижнего левого угла указанного якорного вида, которое появляется, то есть левый нижний угол якорного вида используется в качестве начальной точки левого верхнего угла самого всплывающего связанного файла макета.

Давайте посмотрим на картинку, прямо.

Способ второй:

public void showAsDropDown(View anchor, int xoff, int yoff)

Появляется в левом нижнем углу привязки View, смещение в соответствии с указанными x и y

Бизнес как обычно, просто измените одну строку кода

popupWindow.showAsDropDown(view,30,150);
Проверьте эффект

Метод третий:
public void showAsDropDown (просмотр привязки, int xoff, int yoff, int gravity) (в основном игнорируется)

Укажите привязку View, вы можете установить смещение x и y, и вы можете указать положение относительно родительского элемента управления (например, центр Gravity.CENTER, нижний Gravity.BOTTOM и т. Д.), Вы можете установить смещение или не смещать

Читайте также:  Как найти человека с айфоном через андроид

Примечание. Этот метод предоставляется только после API 19. Его следует использовать с осторожностью. Если мы хотим указать смещение и позицию относительно родительского элемента управления, мы можем использовать другой метод. Этот метод будет представлен далее.

Метод четвертый:

Ключевой метод
public void showAtLocation(View parent, int gravity, int x, int y)

Укажите вид привязки, вы можете установить смещение х и у, и вы можете указатьОтносительно положения родительского контроля(Например, Gravity.CENTER в центре, Gravity.BOTTOM внизу и т. Д.), Смещение или смещение нельзя установить. Это описание аналогично предыдущему методу три, они могут делать то же самое, но showAtLocation уже предоставляется API 1.

Обязательно обратите внимание, что гравитация является относительной привязкой View родительского элемента управления.

popupWindow.showAtLocation(view, Gravity.CENTER,0, 0);

Еще один, используйте |, чтобы указать, что всплывающее окно появляется в правом нижнем углу родительского элемента управления привязки View

popupWindow.showAtLocation(view, Gravity.BOTTOM|Gravity.RIGHT,0, 0);

Три, различные настройки о Popup

1. О нажатии за пределами всплывающего окна, чтобы всплывающее окно исчезло

Два метода должны использоваться вместе, чтобы произвести эффект

2. Относительно фокуса вопроса .setFocusable (true);

Мы видим, что, если это всплывающее окно, нажав в верхнем правом углу WeChat или другого программного обеспечения, когда наше всплывающее окно выскочило, то это когда мы нажимаем кнопку возврата (клавиша возврата), мы обнаружим, что всплывающее окно исчезает, но не текущий выход Это показывает, что когда появляется текущая программа (например, WeChat), после всплывающего окна PopupWindow все сенсорные экраны и физические кнопки обрабатываются PopupWindows. Таким образом, первый раз, когда клавиша «Назад» должна выйти из всплывающего окна, во второй раз, когда клавиша «Назад» нажата, это выйти из текущего действия.

Однако способность всплывающих окон обрабатывать сенсорные экраны и физические кнопки не является врожденной. Вам необходимо установить popupWindow.setFocusable (true) ;. Это следует понимать не только как наличие фокуса, но и как приоритет всплывающего интерактивного уровня ответа.

Если .setFocusable (false); Тогда, если текущее всплывающее окно было отображено, это означает нажатие клавиши назад, и в результате всплывающее окно и действие завершаются вместе.

3. О связи между всплывающей и программной клавиатурой

Используйте setSoftInputMode, чтобы указать этот метод, всего 9 режимов.

4. Анимация о всплывающих окнах

Используйте следующий метод, чтобы указать
public void setAnimationStyle(int animationStyle)

Можете выбрать предоставленную систему
popWindow.setAnimationStyle(android.R.style.Animation_InputMethod);
может использовать пользовательскую анимацию входа и выхода:

android: windowEnterAnimation означает ввод оконной анимации
android: windowExitAnimation представляет анимацию выхода из окна

Код в res / values ​​/ style.xml:

.
.
объявите в res / anim / popup_enter.xml для входа в анимацию

Объявите необходимую анимацию выхода в res / anim / popup_exit.xml

Установите положение и анимацию всплывающего окна
popupWindow.setAnimationStyle(R.style.PopupAnimation);

6. Исчезновение всплывающих окон

popupWindow.dismiss();
Об этом нечего сказать

7. Щелкните по соответствующему всплывающему элементу, об этом нечего сказать.

.
.
По сути, все, что обычно используется при разработке всплывающих окон, упомянуто выше, теперь прикреплен полный демонстрационный код

Источник

Оцените статью