在Activity中监听view测量完成的四种方式
————————————————————————————————————————————————
问题一:在onCreate方法中,我们是无法获取控件的宽高的,原因是因为,actvity此时还买有加载完(view树还没有被绘制完);
问题二:不但控件获取不到,在使用popWindow时,如果放置的位置不合适也会报异常崩溃,原因同上。
popupWindow.showAtLocation(view, Gravity.BOTTOM,0,0);//在此处会出现下面异常,因为此时view还不存在,所以pop无法运行在view上
Caused by: android.view.WindowManager$BadTokenException:
Unable to add window -- token null is not valid; is your activity running?
方式一:重写onWindownFocusChanged方法
该方法
@Override
public void onWindowFocusChanged(boolean hasFocus) {
if (hasFocus) {
if(!num_keyboard.isShowing())
num_keyboard.SHshow(setpaypswSixinput, true);