自定义菜单上的按钮点击下拉

我正在尝试实现flipkart应用程序的操作栏功能。 Flipkart应用截图

为此,我成功地创建了一个自定义的操作栏,但是我在将菜单显示为溢出图标点击时遇到问题。

如果我在按钮上尝试安卓选项菜单,然后点击屏幕底部中心的图标(4.2.2)。 使用自定义对话框或警报对话框淡化背景,并且它们也出现在屏幕的中心。

我应该做些什么来获得类似于上图所示的功能?

试试这样,希望这会帮助你解决你的问题。

请按照链接指令显示弹出式菜单项与图像,您可以使用showAtLocation()来显示所需的位置弹出。

检查: PopupMenu与图标

我有一个简单的方法是把你的溢出菜单,并添加所有这些菜单作为子菜单,通过这种方式,你实现这个观点。 此外,这个溢出菜单一直显示在您的ActionBar

<item android:icon="@drawable/ic_action_overflow" android:showAsAction="always"> <menu> <item android:id="@+id/menu_login" android:icon="@drawable/login" android:title="login"/> </menu> </item> 

您可以轻松使用ListPopupWindow和任何适合您的adapter

 // create any adapter with any data, just as for ordinary ListView SimpleAdapter simpleAdapter= new SimpleAdapter(this, dataSet, android.R.layout.simple_list_item_2, new String[] {"Name", "Tel. no."}, new int[] {android.R.id.text1, android.R.id.text2}); ListPopupWindow listPopup = new ListPopupWindow(this); // feed context to ListPopupWindow listPopup.setAdapter(simpleAdapter); // set adapter to created ListPopupMenu listPopup.setAnchorView(findViewById(id)); // id - any id of any view on the screen. Under this view popup appears. It may be MenuItem as well listPopup.setWidth(getWidestView(simpleAdapter)); // as popup width equals the anchor width, use getWidestView method for proper list displaying. // ListPopupWindow.WRAP_CONTENT won't work here listPopup.show(); 

getWidestView片段,你可以在这里找到: https : getWidestView

如果你正在寻找更多的材料弹出菜单,不怕Kotlin你可以尝试: https : //github.com/zawadz88/MaterialPopupMenu – 没有必要在XML中声明菜单,你可以更容易地处理点击。

Interesting Posts