ActivityDialog 半屏点击空白区域不生效

 <style name="my_dialog" parent="Theme.AppCompat.Dialog">
        <item name="android:windowTranslucentStatus">true</item><!--透明状态栏并占用状态栏位置 -->
        <item name="android:windowIsTranslucent">true</item><!-- 半透明 -->
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowCloseOnTouchOutside">true</item>
        <item name="android:backgroundDimAmount">0.5</item><!-- 背景模糊的透明度 数值越小越透明-->
        <item name="android:windowIsFloating">false</item><!-- 浮现在Activity之上 -->
        <item name="windowNoTitle">true</item><!-- 无标题 -->
        <!-- Dialog进入及退出动画 -->
        <item name="android:windowAnimationStyle">@null
        </item><!-- 进入和退出动画 -->
    </style>
 @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        //设置Theme.Dialog View高度   在setContentView(id);之后添加以下代码 
        WindowManager m = getWindowManager();
        Display d = m.getDefaultDisplay(); // 为获取屏幕宽、高
        android.view.WindowManager.LayoutParams p = getWindow().getAttributes();
        p.gravity = Gravity.BOTTOM;
        p.height = (int) (d.getHeight() * 0.75); // 高度设置为屏幕的
        p.width = (int) (d.getWidth() * 1); // 宽度设置为屏幕的
        getWindow().setAttributes(p);
    }
//解决华为手机半屏点击空白区域无法消失问题
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        LogUtils.e("CLP", "height:" + getWindow().getAttributes().height);
        LogUtils.e("CLP", "event.getY():" + event.getY());
        if (event.getY() < 0) {
            finish();
        }
        return super.onTouchEvent(event);
    }
<activity
            android:name="MyActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:screenOrientation="portrait"
            android:theme="@style/my_dialog"
            android:windowSoftInputMode="stateHidden|adjustResize">
          
        </activity>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值