Всплывающее окно с фоном просмотра переработчика не работает - PullRequest
0 голосов
/ 24 апреля 2020

Я хочу показать всплывающее окно с видом Recycler для меню.

верхний правый угол всплывающего окна -> я показываю значок стрелки сортировки вверх.

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

`menu.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));`


<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/rvCategory"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical"
    android:elevation="10dp"
    android:background="@drawable/popup_bg"/>

высота не работает для вида переработчика. Это не похоже на меню без границ и возвышения. popup

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 27 апреля 2020

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

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

    <androidx.cardview.widget.CardView xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/cardView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginStart="10dp"
        android:layout_marginEnd="20dp"
        android:layout_marginBottom="10dp"
        app:cardCornerRadius="6dp"
        app:cardElevation="6dp">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/rvCategory"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:paddingStart="10dp"
            android:paddingTop="5dp"
            android:paddingEnd="1dp"
            android:paddingBottom="5dp"
            android:clipToPadding="false"
            android:scrollbars="vertical" />
    </androidx.cardview.widget.CardView>
</LinearLayout>

и в коде, где вы инициализируете ваше всплывающее окно, оно должно быть таким (здесь mContext - ваша активность) :

PopupWindow mPopup = new PopupWindow(mContext);
View popUpView = mContext.getLayoutInflater().inflate(R.layout.your_popup_xml, null);
// other initializations
mPopup.setBackgroundDrawable(null);
mPopup.setContentView(popUpView);
mPopup.setFocusable(true);
mPopup.setClippingEnabled(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...