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 name="anim_pop_bottomber">
<item name="android:windowEnterAnimation">@anim/anim_enter</item>
<item name="android:windowExitAnimation">@anim/anim_exit</item>
</style>
<?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>
<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);