Android Activity 中使用 PAGView 时,如何在 Dialog 遮挡时保持动画播放?
要保证在 Dialog 遮挡时动画不停止,可以使用 WindowManager.LayoutParams 中的 FLAG_NOT_FOCUSABLE 标志来设置 Dialog 的属性。具体步骤如下:
- 创建一个自定义的 Dialog,并在构造方法中设置 WindowManager.LayoutParams 的属性。代码如下:
public class CustomDialog extends Dialog {
public CustomDialog(Context context) {
super(context);
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
getWindow().setAttributes(layoutParams);
}
}
- 在 Activity 中引用 PAGView,并在需要显示 Dialog 的地方调用 CustomDialog 的 show() 方法。代码如下:
public class MainActivity extends AppCompatActivity {
private CustomDialog mDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PAGView pagView = findViewById(R.id.pag_view);
// 设置 PAGView 的动画
// 显示 Dialog
mDialog = new CustomDialog(this);
mDialog.show();
}
}
通过设置 FLAG_NOT_FOCUSABLE 标志,可以保证 Dialog 不会获取焦点,从而不会影响 PAGView 的动画。
原文地址: https://www.cveoy.top/t/topic/pS8s 著作权归作者所有。请勿转载和采集!