WindowManager addview生成的view有一个button,点击button后start 新的activity,怎么让view不悬浮在新activity上
时间: 2024-03-23 18:43:25 浏览: 124
要实现这个功能,您可以在启动新Activity之前,从WindowManager中删除您添加的View。这样,当新Activity启动时,View就不会悬浮在上面了。
以下是一个实现的例子:
```
// 获取WindowManager
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
// 创建一个包含Button的View
View view = LayoutInflater.from(this).inflate(R.layout.your_view_layout, null);
Button button = view.findViewById(R.id.your_button_id);
// 为Button设置点击事件,启动新Activity
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 从WindowManager中移除View
windowManager.removeView(view);
// 启动新的Activity
Intent intent = new Intent(YourCurrentActivity.this, YourNewActivity.class);
startActivity(intent);
}
});
// 将View加入到WindowManager中
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
windowManager.addView(view, layoutParams);
```
在这个例子中,当Button被点击时,首先从WindowManager中移除View,然后启动新的Activity。这样,新Activity启动后,View就不会悬浮在上面了。
请注意,如果您在新Activity中需要使用相同的View,您需要在新Activity中重新创建并添加View。
阅读全文