安卓PopupWindows的使用

  • 新建一个PopupWindwos的基本类
public class MoreCompanyPopupWindows extends PopupWindow {

    private Context context;
    private View parent;
    private int yStart;
    List<CompanyInfo> mDatas;
    EditText et_company_code;
    
   /**
     *
     * @param context 上文
     * @param parent 触发PupupWindow的组件
     * @param yStart y坐标
     * @param mDatas 数据
     * @param editText 控件
     */
	public MoreCompanyPopupWindows(Context context, View parent, int yStart, List<CompanyInfo> mDatas, EditText editText) {
        this.context = context;
        this.parent = parent;
        this.yStart = yStart;
        this.mDatas = mDatas;
        this.et_company_code = editText;
        initView();
    }

    private void initView() {
    	//绑定弹出页面
        View view = View.inflate(context, R.layout.activity_login_item_more, null);
        Resources resources = context.getResources();
        DisplayMetrics displayMetrics = resources.getDisplayMetrics();
        setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
        
        //设置弹出view的高度
        setHeight(displayMetrics.heightPixels*7/8);
        
        setBackgroundDrawable(new BitmapDrawable());
        setFocusable(true);
        
        //设置弹出收回的view动画,此处设置的为滑入滑出
        setAnimationStyle(R.style.anim_pop_bottomber);
        
        //设置点击屏幕其他部分关闭弹出View
        setOutsideTouchable(true);
        
        setContentView(view);
        showAtLocation(parent, Gravity.BOTTOM, 0, DensityUtil.dip2px(context, yStart));
        update();
        
         //点击退出按钮
        ImageView img_close = view.findViewById(R.id.close);
        img_close.setOnClickListener(new CloseOnClickListener());
    }

    private class CloseOnClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            dismiss();
        }
    }

}
  • 滑入滑出动画 Style.xml
    <style name="anim_pop_bottomber">
        <item name="android:windowEnterAnimation">@anim/anim_enter</item>
        <item name="android:windowExitAnimation">@anim/anim_exit</item>
    </style>
  • anim_enter 滑入动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="300"
        android:fromYDelta="100%p"
        android:toYDelta="0"/>
</set>
  • anim_exit滑出动画
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="300"
        android:fromYDelta="0"
        android:toYDelta="100%p"/>
</set>
  • 调用
  productsMoreCompanyPopupWindows = new MoreCompanyPopupWindows(this, see_more, 0, mDatas, et_company_code);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值