我这样做时遇到了这个错误。
java.lang.RuntimeException:查看正在添加的android.widget.RelativeLayout,但它已经有了父
此错误出现在最后一行。我在WindowManager中添加RelativeLayout。
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
final WindowManager.LayoutParams paramt = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
paramt.gravity = Gravity.TOP | Gravity.LEFT;
paramt.x = 0;
paramt.y = chatHead.getHeight();
Toast.makeText(getApplicationContext(), "height: "+chatHead.getHeight(),
Toast.LENGTH_SHORT).show();
setContentView(R.layout.r_convo);
r_convo = (RelativeLayout) findViewById(R.id.r_convo);
windowManager.addView(r_convo, paramt);
答案 0 :(得分:1)
您致电setContentView(R.layout.r_convo)
。这会自动将视图附加到应用程序的活动窗口。因此,错误。
每个应用程序的布局都将始终附加到Window
对象。您应该通过Activity.getWindow()
获取对当前活动窗口的引用,而不是实例化新窗口,然后使用Window.setFlag()