繁体   English   中英

弹出式菜单离开屏幕

[英]Popup menu goes out of the screen

对于这个活动,inflate 上的弹出菜单超出了屏幕,对于其他活动也能正常工作

在此处输入图像描述

扩展自定义 AppCompatActivity

Styles:

<style name="AppTheme.ActionBar.TransparentContextTranscition" parent="AppTheme.NoActionBar">
    <item name="android:windowActivityTransitions">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowLightStatusBar">true</item>

    <item name="android:itemBackground">@android:color/white</item>
    <item name="android:textColor">@android:color/black</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    <item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="color">@android:color/white</item>
</style>

<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
    <item name="android:popupBackground">@android:color/white</item>
</style>

Java代码

holder.contextMenuView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final PopupMenu popup = new PopupMenu(v.getContext(), v);
            popup.inflate(R.menu.song_item_menu_album_inner_layout);
        }
});

工具栏膨胀菜单工作正常

在此处输入图像描述

看起来我正在使用

getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

我的错。 FLAG_LAYOUT_NO_LIMITS,删除上下文菜单的限制。 (这就是原因,上下文菜单走出屏幕),希望对某人有所帮助

一个简单但可自定义的Android下拉菜单。 它支持带/不带图标的文本,分隔符,甚至是完全自定义的视图

https://github.com/shehabic/Droppy

不幸的是,弹出菜单不符合其内部视图的大小并且不在范围内。 我之前遇到过同样的问题。 而且我知道这不是最好的解决方案,但在这里:

创建一个透明假视图用作锚点以阻止边缘超出。

但是,由于它会浮动,所以不能将它放在顶部或底部,因此在尝试此操作时要小心高度。

顺便一句别忘了设置android:anyDensity="True/False"

在您的代码中使用它:

final PopupMenu popup = new PopupMenu(v.getContext(), v, Gravity.RIGHT);

如果它不起作用,则更改锚视图v。因为它可以根据您的要求设置弹出菜单的位置。

您可以允许弹出菜单与锚视图重叠。

更多信息: https://stackoverflow.com/a/29702608

暂无
暂无

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

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