Dialog制作底部滑出1/4,然后滑到全屏动画效果

 getWindow().setFlags(LayoutParams.FLAG_NOT_TOUCH_MODAL,LayoutParams.FLAG_NOT_TOUCH_MODAL);
 getWindow().setFlags(LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
 //这个是用来处理dialog区域之外的触摸事件
 @override
 public boolean OnTouchEvent(MotionEvent event) {
 	if (MotionEvent.ACTION_OUTSIDE == event) {
 		return true;
 	}
 	return super.OnTouchEvent(event);
 }
 
 //底部画出1/4(特定)高度
 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);
	//处理initAttr(R.style.dialog_animation2,screenHeight)改变之后的
	if (params.height == screenHeight) {
		setListHeightBaseOnChildren(screenHeight - mTitleHeight);//listView的高度要去掉标题栏的高度
		//然后做一些刷新处理,listView不用重新刷新
	}
}
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值