android打开一个窗口后如何设置屏幕背景变暗且不能点击

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android打开一个窗口后如何设置屏幕背景变暗且不能点击相关的知识,希望对你有一定的参考价值。

最近在android SystemUi中做了一个类似三星多窗口的东西,但是遇到了很多的问题,请教各位大神,如何在打开一个panel后,设置pad 屏幕变暗且不能点击,焦点只在这个panel上,关闭后焦点回到桌面,谢谢了!!
就像打开最近任务时一样的就可以

1楼的回答是错误的,那是在窗口以外的地方不可点击,楼主是要在该panel不可点击。如果你的panel就是一个布局,你可以在onTouch方法返回false试试 参考技术A 直接在那个窗口显示类的onCreate()里加一句代码即可。
setFinishOnTouchOutside(false);

如何使背景视图变暗

【中文标题】如何使背景视图变暗【英文标题】:how to dim background view 【发布时间】:2014-05-27 10:57:04 【问题描述】:

当我使用自定义模式视图控制器时尝试使背景视图变暗,我将背景颜色设置为灰色,不透明度为 0.5:

- (void)rulesTapped:(id)sender

    RulesVC *rulesVC = [[RulesVC alloc] init];

    self.view.backgroundColor = [UIColor colorWithRed:0.3 green:0.3 blue:0.3 alpha:0.5];
    rulesVC.modalPresentationStyle = UIModalPresentationCustom;
    rulesVC.transitioningDelegate = self;
    [self presentViewController:rulesVC animated:YES completion:nil];

但是当我在关闭模态 VC 时尝试将其设置回 whiteColor(或黄色)时,这种变暗保持在原位:

- (void) gotItTapped:(id)sender


    [self.presentingViewController.view setBackgroundColor:[UIColor yellowColor]];

    [self dismissViewControllerAnimated:YES completion:nil];


为什么?有没有办法在不添加另一个覆盖视图而只使用现有视图操作的情况下使背景变暗(然后移除变暗)视图?

【问题讨论】:

【参考方案1】:

如果不向您的UIViewController 添加其他元素,我认为您无法实现它。我通常插入一个UIView,它是setHidden:YES,alpha 0.0f 和blackColor 作为backgroundColor。显示某些东西时,我总是将其设置为 Hidden:NO 并将其动画设置为不透明度 0.6f。

[UIView animateWithDuration:0.5f animations:^
    [self.view setAlpha:0.6];
];

这样它不会立即出现并且看起来更平滑。

【讨论】:

【参考方案2】:

我实际上需要这个能够将其他一些 UIView 放入昏暗视图中,并且在此昏暗视图之外的每次点击都会关闭内置 UIView 和昏暗视图。我发现,为此最好的方法是模仿一个按钮,该按钮在单击时从超级视图中删除:

self.dimView = [UIButton buttonWithType:UIButtonTypeCustom];
self.dimView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.2f];
self.dimView.frame = CGRectMake(0,
                                0,
                                self.view.frame.size.width,
                                self.view.frame.size.height);
[self.dimView addTarget:self
                 action:@selector(removeDimView)
       forControlEvents:UIControlEventTouchUpInside];  

【讨论】:

以上是关于android打开一个窗口后如何设置屏幕背景变暗且不能点击的主要内容,如果未能解决你的问题,请参考以下文章

如何让 iPhone 屏幕变暗

DIV+CSS实现弹出窗口隐藏/显示效果+背景变暗

防止模态背景覆盖在每个打开的新模态上变暗

MTK工程模式乱调导致背光暗且不能调怎样恢复

模糊Android中的对话框

如何设置Android Studio背景的颜色