• 首先导入
require "import"
import "android.graphics.drawable.BitmapDrawable"
import "android.view.animation.LayoutAnimationController"
import "android.view.animation.Animation"
import "android.view.animation.AnimationSet"
import "android.view.animation.AlphaAnimation"
import "android.view.animation.TranslateAnimation"
import "android.view.animation.TranslateAnimation"
  • 代码
--把弹出定义成方法 方便复用
function 弹窗2()
 fr={
  CardView,
  background="#00000000",
  id="Rspop",
  layout_width='';--布局宽度
  layout_height='';--布局高度
  elevation='0dp';--阴影属性
  {
   LinearLayout;
   orientation='vertical';--重力属性
   layout_width='fill';--布局宽度
   layout_height='fill';--布局高度
   background='#00000000';--背景
   gravity="bottom";--弹窗位置
   layout_marginBottom="-10dp";
   {
    CardView;--卡片控件
    elevation='9dp';--阴影属性
    layout_width="fill",
    layout_height="290dp",
    radius='20dp';--卡片圆角
    {
     TextView;
     text="标题";
     textColor="#ff000000";
     layout_marginTop='20dp';--卡片边距
     layout_gravity="center|top";
     textSize="24sp";
    };
    --这里可以写别的代码
    {
     CardView;
     layout_height="45dp";
     layout_width="220dp";
     id="an";
     layout_gravity="center|bottom";
     layout_marginBottom='25dp';--卡片边距
     radius='22.5dp';--卡片圆角
     elevation="1dp";
     cardBackgroundColor=0xff5dbdff;
     {
      TextView;
      text="按钮";
      textColor="#ffffffff";
      layout_gravity="center";
      textSize="20sp";
     };
    };
   };
  };
 };
 --定义一个弹窗为PopupWindow类型的弹窗
 pop=PopupWindow(activity)
 --给弹窗一个自定义布局
 pop.setContentView(loadlayout(fr))
 --修复bug,千万不能删除
 pop.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
 --设置显示宽度
 pop.setWidth(activity.width)
 --设置显示高度
 pop.setHeight(activity.height)
 --点击PopupWindow外面区域  true为消失
 pop.setOutsideTouchable(false)
 --修复bug,千万不能删
 pop.setBackgroundDrawable(BitmapDrawable(loadbitmap("xxx.jpg")))
 --设置pop可获得焦点
 pop.setFocusable(true)
 --设置pop可触摸
 pop.setTouchable(true)
 --设置弹窗显示位置
 pop.showAtLocation(view,Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL,0,0)
 --上升动画
 --相关参数,请自行手册查询
 Rs=TranslateAnimation(0,0,activity.height,0)
 --动画时间,也就是上升动画的快慢
 Rs.setDuration(200)
 --动画开始执行
 Rspop.startAnimation(Rs);
 --动画结束回调

 an.onClick=function()
  print("单击事件")
 end
end
--弹窗2() --不能在启动事件直接调用会报错


--但是可以写一个单击事件单击后调用该函数 如下:
--[[
ID.onClick=function()
  弹窗2()
end
]]
--也可以在启动事件直接调用

ti=Ticker()
ti.Period=50
ti.onTick=function()ti.stop()
  弹窗2() --调用
end
ti.start()
最后修改:2021 年 10 月 28 日
如果觉得我的文章对你有用,请随意赞赏