Android弹出菜单设置重力(API < 19)

5

请回答这个哈哈 - David Pilkington
2个回答

9

将代码行中的 import android.widget.PopupMenu; 改为 import android.support.v7.widget.PopupMenu;


3
如果您使用androidx,则请使用import androidx.appcompat.widget.PopupMenu;,它将起作用。 - Vucko

1

您可以使用RTL来将重心放在右侧这里是链接

RTL支持Android 4.2及以上版本

或者您可以创建自定义的弹出菜单并进行填充。

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            popup = new PopupMenu(context, arg1,Gravity.CENTER );
            //popupWindow.showAtLocation(anchor, Gravity.NO_GRAVITY, xPos, yPos);     
        }
        //Inflating the Popup using xml file  
        popup.getMenuInflater().inflate(R.menu.listmenu, popup.getMenu());

或者您可以提供锚点和样式。
showPopup(viewOfWherePopupmenuShows,popmenuNameList.size());


PopupMenu popMenu = new PopupMenu(Activity.this,v)
int size =popmenuNameList.size();
for(int i =0; i <size; i++){
 popMenu.getMenu().add(popmenuNameList.get(i)).setIcon(R.drawable.logo);

}
 popMenu.show();

protected void showPopupMenu(View v, int size){
   //create instance
   PopupMenu popup = new PopupMenu(Activity.this,v);
   //inflating the popup using xml
   popup.getMenuInflater().inflate(R.menu.menu_popup_list),popup.getMenu());
}

菜单的样式是由传递的上下文样式决定的。因此,您只需要将您的Activity引用作为上下文传递即可。
这里的“style”指的是样式。
 <style name="style" parent="android:Theme.Holo.Light">

    <item name="android:popupMenuStyle">...</item>
    <item name="android:popupAnimationStyle">...</item>
   <item name="android:popupBackground">...</item>

</style>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接