繁体   English   中英

如何给 PopupMenu 圆角

[英]How to give round corners to a PopupMenu

我想在一个圆角上添加一个 PopupMenu。我通过在 appTheme 中使用 roundCornerDrawable 在工具栏上成功地做到了这一点,使它变成了圆角。 但我想要的是给一个 popupMenu 一个圆角,它是在一个按钮上动态创建的,这与通过膨胀它在工具栏中创建的 popupMenuu 不同。

提前致谢 !

您可以创建一个包含圆形的 xml 文件。 您可以使用此 shape_background.xml 文件将其用作弹出菜单中的背景。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <corners
        android:radius="40dp" />

    <!--If your shape requires only one solid color-->
    <!--<solid
        android:color="#FFFFFF" />-->

    <size
        android:width="82dp"
        android:height="82dp" />

    <!--Use android:dashWidth="2dp" and android:dashGap="2dp"
    to add dashes to your stroke-->
    <stroke
        android:width="2dp"
        android:color="#FFFFFF" />

    <!--If you want to add padding-->
    <!-- <padding
         android:left="10dp"
         android:top="20dp"
         android:right="40dp"
         android:bottom="8dp" />-->
    
</shape>

您可以使用此代码将此 xml 文件用作弹出菜单中的背景。 然后以 styles.xml 中声明的自定义样式引用该可绘制对象,例如

<style name="Widget.MPM.Menu.Dark.CustomBackground">
    <item name="android:popupBackground">@drawable/mtrl_popupmenu_background</item>
</style>

最后一个难题是在构建弹出菜单时使用该样式:

val popupMenu = popupMenu {
    style = R.style.Widget_MPM_Menu_Dark_CustomBackground
    // ... place your items here
}

这是带有圆形弹出菜单的图像

我找到了

这个库帮助我得到我想要的角半径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM