主要是popupWindow不能以第一个popupWindow中的view作为锚点View,要想实现popupWindow上再弹出popupWinow就要两个都用Activity上的view作为锚点View就可以了,要实现的话就要把Activity中的view通过第一个popupWindow传过去,所以就要重写或封装一下第一个popupWindow,当然第一个或第二弹窗改用dialog实现也可以,这样更简单。这里就说一下两个都是popupWindow的实现方法。
public class FirstPopupWindow implements View.OnClickListener{
private View anchorView;
public FirstPopupWindow(View anchorView){
//传入activity中的view作为锚点view
this.anchorView=anchorView;
}
public void show(){
View firstView= LayoutInflater.from(activity).inflate(R.layout.first_popupwindow, false);
TextView tv=(TextVeiw)firstView.findViewById(R.id.tv);
tv.setOnClickListener(this);
PopupWindow firstPopupWindow= new PopupWindow(firstView);
//第一个popupwindow用的锚点view是anchorView
firstPopupWindow.showAsDropDown(anchorView);
}
public void onClick(View v){
switch (v.getId()){
case R.id.tv:
//secendView的布局就一个TextView,id是tv
View secendView = LayoutInflater.from(activity).inflate(R.layout.secend_popupwindow, false);
PopupWindow secendPopupWindow= new PopupWindow(secendView);
//第二个popupwindow用的锚点view也是anchorView
secendPopupWindow.showAsDropDown(anchorView);
break;
}
}
}