getWindow().setFlags(LayoutParams.FLAG_NOT_TOUCH_MODAL,LayoutParams.FLAG_NOT_TOUCH_MODAL);
getWindow().setFlags(LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
@override
public boolean OnTouchEvent(MotionEvent event) {
if (MotionEvent.ACTION_OUTSIDE == event) {
return true;
}
return super.OnTouchEvent(event);
}
public void OnAttachedToWindow() {
super.OnAttachedToWindow();
initAttr(R.style.dialog_animation,304);
setListHeightBaseOnChildren(304);
}
private void initAttr(int animId,int height) {
WindowManager.LayoutParams mParams = getWindow().getAttribute();
mParams.dimAmount = 0f;
mParams.windowAnimations = animId;
mParams.gravity = Gravity.BOTTOM;
mParams.height = height;
getWindow().setAttribute(mParams);
}
private void setListHeightBaseOnChildren(int height) {
ViewGroup.LayoutParams mParams = mListViewLl.getLayoutParams();
params.height = height;
mListViewLl.setLayoutParams(mParams);
}
public void OnWindowAttributeChanged(LayoutParams params) {
super.OnWindowAttributeChanged(params);
if (params.height == screenHeight) {
setListHeightBaseOnChildren(screenHeight - mTitleHeight);
}
}