android - java.lang.RuntimeException:查看android.widget.RelativeLayout正在添加,但它已经有一个父

时间:2014-07-24 04:13:26

标签: android

我这样做时遇到了这个错误。

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);

1 个答案:

答案 0 :(得分:1)

您致电setContentView(R.layout.r_convo)。这会自动将视图附加到应用程序的活动窗口。因此,错误。

每个应用程序的布局都将始终附加到Window对象。您应该通过Activity.getWindow()获取对当前活动窗口的引用,而不是实例化新窗口,然后使用Window.setFlag()

之类的设置器更改其行为