android 的popwindow弹窗
2017-05-18 本文已影响203人
Heheaaa
android的弹窗 常用:
popwindow
//初始化顶部导航popwindow
private void initPopupWindow(View v) {
View view = LayoutInflater.from(getContext()).inflate(R.layout.item_popup, null, false);
TextView memory = (TextView) view.findViewById(R.id.popup_memory);
TextView collect = (TextView) view.findViewById(R.id.popup_collect);
TextView cache = (TextView) view.findViewById(R.id.popup_cache);
TextView local = (TextView) view.findViewById(R.id.popup_local);
//1.构造一个PopupWindow,参数依次是加载的View,宽高
final PopupWindow popWindow = new PopupWindow(view,
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
popWindow.setAnimationStyle(R.anim.anim_pop); //设置加载动画
//这些为了点击非PopupWindow区域,PopupWindow会消失的,如果没有下面的
//代码的话,你会发现,当你把PopupWindow显示出来了,无论你按多少次后退键
//PopupWindow并不会关闭,而且退不出程序,加上下述代码可以解决这个问题
popWindow.setTouchable(true);
popWindow.setTouchInterceptor(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
// 这里如果返回true的话,touch事件将被拦截
// 拦截后 PopupWindow的onTouchEvent不被调用,这样点击外部区域无法dismiss
}
});
popWindow.setBackgroundDrawable(new ColorDrawable(0x00000000)); //要为popWindow设置一个背景才有效
//设置popupWindow显示的位置,参数依次是参照View,x轴的偏移量,y轴的偏移量
popWindow.showAsDropDown(v, 0, -10);
//设置popupWindow里的按钮的事件
memory.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), HistoryActivity.class));
}
});
collect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), CollectionActivity.class));
}
});
cache.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), DownloadActivity.class));
}
});
local.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), SignActivity.class));
}
});
}