栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android仿微信、qq点击右上角加号弹出操作框

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android仿微信、qq点击右上角加号弹出操作框

Android仿微信、qq点击右上角加号弹出操作框,先上图,类似于下图这种,点击加号,会弹出一个对话框,如下图:

微信:

自己实现:

接下来,我们来实现此功能:

其实,实现原理就是,点击“+”号,弹出一个PopupWindow。

1、写一个用于展示在ToolBar中的 menu文件,如下:



  


2、先添加 “+” ,我的项目里使用的是ToolBar,我给ToolBar添加菜单,在Activity中重写方法onCreateOptionsMenu,如下图:

@Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_index_msg, menu);
    return super.onCreateOptionsMenu(menu);

  }

到这里,“+”号,已经出现了。

3、给menu添加点击事件,并初始化PopupWindow,弹出自定义的PopupWindow,如下:

@Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
      case R.id.btn_msg:
 View popupView = IndexActivity.this.getLayoutInflater().inflate(R.layout.popupwindow, null);
 final PopupWindow window = new PopupWindow(popupView, 300, 220);
 ListView lv_msg = (ListView) popupView.findViewById(R.id.lv_msg);
 MsgAdapter msgAdapter = new MsgAdapter(context, msgBeans);
 lv_msg.setAdapter(msgAdapter);
 lv_msg.setonItemClickListener(new AdapterView.onItemClickListener() {
   @Override
   public void onItemClick(AdapterView parent, View view, int position, long id) {
     if (window.isShowing()) {
window.dismiss();
     }
     switch (position) {
case 0:
  if (myApplication.isonline()) {
    NoticeMainActivity.startActivity(IndexActivity.this);
  } else {
    Toast.makeText(IndexActivity.this, "离线状态不能使用此功能", Toast.LENGTH_SHORT).show();
  }
  break;
case 1:
  if (myApplication.isonline()) {
    TaskMainActivity.startActivity(IndexActivity.this);
  } else {
    Toast.makeText(IndexActivity.this, "离线状态不能使用此功能", Toast.LENGTH_SHORT).show();
  }
  break;
default:
  break;
     }
   }
 });
 window.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#F8F8F8")));
 window.setFocusable(true);
 window.setOutsideTouchable(true);

 window.update();

 //设置显示位置

 window.showAsDropDown(msgView, 0, 0);//msgView就是我们menu中的btn_msg
 break;
      default:
 break;
    }
    return super.onOptionsItemSelected(item);
  }

4、在上面3中有一个布局popupwindow,我项目中用到的时显示通知,我在布局中用了ListView来显示内容。这里也可以把布局写成固定布局,根据自己的需求充分发挥。下面贴出来popupwindow布局,如下:



  

5、到这里就实现了我们想要的功能,结果图:

6、通知和任务右边显示的信息条数,是用的shape  xml文件进行约束的,也可以使用BadgeView实现,这里就不过多说明了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/156337.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号