PopupWindow не раздувает API 19 - PullRequest
       27

PopupWindow не раздувает API 19

1 голос
/ 13 января 2020

Мой PopupWindow прекрасно работает на моих эмуляторах API 28,29, но не уверен, почему он не отображает представление на моем реальном устройстве API 19. Окно определенно создано, потому что когда я нажимаю на кнопку, которая раздувает вид, оно фокусируется.

Мое собственное всплывающее окно:

    public class MessagesMoreMenu extends PopupWindow {

    private static final String TAG = "MessagesMoreMenu";

    private Context mContext;
    public MessagesMoreMenu(Context context) {
        super(context);
        this.mContext = context;
        setupView();
    }

    private void setupView(){
        View view = LayoutInflater.from(mContext)
                .inflate(R.layout.popupmenu_messagesmoremenu, null);
        ButterKnife.bind(this, view);

        setContentView(view);
    }
}

Использование его:

    private void inflateMoreMenu(View view){
         PopupWindow popupWindow = new MessagesMoreMenu(mContext);
         popupWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
         popupWindow.setOutsideTouchable(true);
         popupWindow.setFocusable(true);
         popupWindow.showAsDropDown(view);
    }

XML макет:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <TextView
        android:id="@+id/popupmenu_messagesmore_report"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Report"
        android:padding="16dp"
        app:drawableLeftCompat="@drawable/icon_messages_report"
        android:textColor="@color/colorBlackFont"
        android:layout_alignParentTop="true"
        android:gravity="center_vertical"
        android:drawablePadding="16dp"/>


    <TextView
        android:id="@+id/popupmenu_messagesmore_block"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawablePadding="16dp"
        android:padding="16dp"
        android:text="Block"
        app:drawableLeftCompat="@drawable/icon_alertdialog_block"
        android:textColor="@color/colorBlackFont"
        android:layout_below="@+id/popupmenu_messagesmore_report"
        android:gravity="center_vertical"/>

</RelativeLayout>

Ответы [ 2 ]

1 голос
/ 13 января 2020

Очень странно, но добавление этого исправило мою проблему ...

popupWindow.setWindowLayoutMode(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

{ ссылка }

Это не требуется на других моих устройствах, не поддерживающих API 19

0 голосов
/ 13 января 2020

, пожалуйста, попробуйте

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

здесь mRelativeLayout - это ссылка на просмотр вашей деятельности / фрагмента

...