将弹出菜单设置为全屏

Emi*_*enT 11 android popupmenu

注意:这是弹出菜单而不是弹出窗口.所以我要求大家仔细阅读.

我已经实现了弹出菜单.它显示在屏幕的一半.我想把它传播到整个设备的宽度.我试图通过设置来改变其风格layout_widthmatch_parent,但没有成功.

以下是我到目前为止所尝试的内容:

样式

 <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->

        <item name="popupMenuStyle">@style/PopupMenu</item>
    </style>

  <!-- Change Overflow Menu Background -->
    <style name="PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
        <item name="android:popupBackground">#888888</item>
        <item name="android:layout_width">match_parent</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

下面是我的java代码:

  PopupMenu menu = new PopupMenu(getActivity(), tvnext);


    for (int i = 0; i < array.size(); i++) {

        menu.getMenu().add(1, i, 1, array.get(i).getAccountName());

    }


    menu.show();

    menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            setUpNextFunctionality(item.getItemId());


            return false;
        }
    });
Run Code Online (Sandbox Code Playgroud)

PS:请不要建议我使用弹出窗口.如果没有任何效果,这是我的最后选择.

Dha*_*hah 5

我收到了你的问题.而不是修改一些东西使用新的小部件,它可以轻松地满足您的需要并与更新的版本兼容.

Google将新材​​料概念引入底层

要在android中使用它,你可以像这样使用git hub库.


Ram*_*oti 1

尝试这个:

pwindow = 
    new PopupWindow(layoutt,LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,true);
Run Code Online (Sandbox Code Playgroud)