海拔在 PopupWindow Android 中不起作用

问题描述

我在我的 android 应用程序中使用 PopupWindow 并且它工作正常。但是我必须向它添加 elevation 但它不起作用。这是我的做法

查看以显示在弹出窗口 popup_view_order_status

    <?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="match_parent"
    android:orientation="vertical"
    android:background="@color/white"
    android:layout_margin="@dimen/margin_xlarge"
    android:elevation="@dimen/margin_large"
    android:padding="@dimen/margin_large">


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="@dimen/text_large"
        android:textColor="@color/dark_gray"
        android:textStyle="bold"
        android:text="@string/lbl_order_status" />

    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <RadioButton
            android:id="@+id/rbAccepted"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layoutDirection="rtl"
            android:textAlignment="textStart"
            android:layout_gravity="start"
            android:minHeight="@dimen/text_xxlarge_m"
            android:text="@string/lbl_accepted"
            android:textSize="@dimen/text_large"
            android:onClick="onRadioButtonClicked"/>

        <RadioButton
            android:id="@+id/rbRejected"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layoutDirection="rtl"
            android:textAlignment="textStart"
            android:layout_gravity="start"
            android:minHeight="@dimen/text_xxlarge_m"
            android:text="@string/lbl_rejected"
            android:textSize="@dimen/text_large"
            android:onClick="onRadioButtonClicked"/>

        <RadioButton
            android:id="@+id/rbOutForDelivery"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layoutDirection="rtl"
            android:textAlignment="textStart"
            android:layout_gravity="start"
            android:minHeight="@dimen/text_xxlarge_m"
            android:text="@string/lbl_out_for_delivery"
            android:textSize="@dimen/text_large"
            android:onClick="onRadioButtonClicked"/>

        <RadioButton
            android:visibility="gone"
            android:id="@+id/rbReadyForPickup"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layoutDirection="rtl"
            android:textAlignment="textStart"
            android:layout_gravity="start"
            android:minHeight="@dimen/text_xxlarge_m"
            android:text="@string/lbl_ready_for_pickup"
            android:textSize="@dimen/text_large"
            android:onClick="onRadioButtonClicked"/>


        <RadioButton
            android:id="@+id/rbCompleted"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layoutDirection="rtl"
            android:textAlignment="textStart"
            android:layout_gravity="start"
            android:minHeight="@dimen/text_xxlarge_m"
            android:text="@string/lbl_completed"
            android:textSize="@dimen/text_large"
            android:onClick="onRadioButtonClicked"/>

    </RadioGroup>
</LinearLayout>

这是我在活动中设置它的方式

    val inflater = getSystemService(LAYOUT_INFLATER_SERVICE) as LayoutInflater
    val popupView: View = inflater.inflate(R.layout.popup_view_order_status,null)
    val width = LinearLayout.LayoutParams.WRAP_CONTENT
    val height = LinearLayout.LayoutParams.WRAP_CONTENT
    val focusable = true // lets taps outside the popup also dismiss it
    val popupWindow = PopupWindow(popupView,width,height,focusable)
    popupWindow.showAtLocation(binding.btnorderStatusChange,Gravity.RIGHT,50,-binding.btnorderStatusChange.measuredHeight / 2)
    popupWindow.setBackgroundDrawable(ColorDrawable(Color.WHITE))
    popupWindow.elevation = 120F

解决方法

我会尝试以下:

  1. 使用 View 作为您的内容根 cardElevation,它具有用于自定义阴影的 CardView 属性。
  • 请记住,为了使 View 阴影可见,您必须为其添加一些边距,而要使边距可见,您必须再添加一个 CardView 到包裹 LinearLayout,您可以使用 FrameLayoutpopupWindow.setBackgroundDrawable(null)
  1. 调用 import numpy as np import glob import matplotlib.pyplot as plt import pandas as pd from matplotlib import animation import scipy as sp from IPython.display import set_matplotlib_formats set_matplotlib_formats('jpg') from mpl_toolkits.mplot3d import Axes3D #%matplotlib qt import animatplot as amp from sklearn.preprocessing import StandardScaler 删除内置背景。

演示:https://www.youtube.com/watch?v=rlWX4kIDI6Q

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...