PopUpMenu的使用

Menu文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/s1"
        android:title="test1"
        app:showAsAction="always"/>
    <item android:id="@+id/s2"
        android:title="test2"
        app:showAsAction="ifRoom"/>
    <item android:id="@+id/s3"
        android:title="test3"
        app:showAsAction="never"/>


</menu>

JAVA代码,在按钮中点击调用

     popmenus.setOnClickListener(new OnClickListener() {
           @Override
           public void onClick(View v) {
               PopupMenu popup = new PopupMenu(context,v);
               // 获取布局文件
               popup.getMenuInflater().inflate(R.menu.title_menu, popup.getMenu());
               popup.show();

               popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                   @Override
                   public boolean onMenuItemClick(MenuItem item) {
                          switch (item.getItemId()){
                              case R.id.s1:
                                  Toast.makeText(context,"1",Toast.LENGTH_LONG).show();
                                  break;
                              case R.id.s2:
                                  Toast.makeText(context,"2",Toast.LENGTH_LONG).show();
                                  break;
                              case R.id.s3:
                                  Toast.makeText(context,"3",Toast.LENGTH_LONG).show();
                                  break;
                          }
                       return true;
                   }
               });



           }
       });

PopUpMenu美化

 <style name="popmenuStyle" parent="@android:style/Widget.PopupMenu">
        <item name="android:popupBackground">@color/black</item><!-- popMenu的背景色-->
    </style>
    <!--popmenu的字体颜色-->
    <style name="popmeuText">
        <item name="android:textColor">@color/white</item>
        <item name="android:textSize">20sp</item>
        <item name="android:gravity">center</item>
    </style>
    <!--popMenu分割线的颜色-->
    <style name="popmenuDivier">
        <item name="android:divider">@color/blueSky</item>
        <item name="android:dividerHeight">2sp</item>
    </style>

定义完需要在主题背景调用

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:popupMenuStyle">@style/popmenuStyle</item>
        <item name="android:dropDownListViewStyle">@style/popmenuDivier</item>
        <item name="android:textAppearanceSmallPopupMenu">@style/popmeuText</item>
        <item name="android:textAppearanceLargePopupMenu">@style/popmeuText</item>
    </style>

只做为自己学习的记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值