今天在做项目的时候遇到了这个问题,当时我是这样写的
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CommonUtils.initData(this);
setContentView(R.layout.activity_search);
mContext = this;
httpInstance = new HttpInstance();
initView();
historyPop();
historyPop.showAsDropDown(findViewById(R.id.search_layout));
}
showAsDropDown,或者是在Activity的onCreate()函数里面调用了showAsDropDown,多半是后者,由于你的popupwindow要依附于一个activity,而activity的onCreate()还没执行完,没有pop可以弹出。
改成如下就好了,用一个线程或者在某个事件里进行。
private Handler popupHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
historyPop.showAsDropDown(findViewById(R.id.search_layout));
historyPop.update();
break;
}
}
};
然后在onCreate方法中这样写
popupHandler.sendEmptyMessageDelayed(0, 100);