Два SurfaceView не меняются местами в двух видах - PullRequest
0 голосов
/ 20 июня 2019

Я создал два SurafceView, таких как surface_1 и surface_2

И в XML Activity_main существует два относительных макета.Имя - относительный_1 и относительный_2.

После этого я добавляю Surface_1 к относительной_1 и поверхность_2 к относительной_2.

Теперь я хочу добавить surafce_1 к относительной_2.и для достижения этого сначала я удалил surface_2 из относительной_2, а затем добавил поверхность_1 к относительной_2.

Но во время добавления поверхности_1 к относительной_2 я получил исключение. У указанного дочернего элемента уже есть родительский элемент.Сначала вы должны вызвать removeView () на родительском объекте ребенка.

SurafceView surface_1= new SurfaceView(context);
SurafceView surface_2= new SurfaceView(context);

RelativeLayout relative_1  = (RelativeLayout) mainView.findViewById(R.id.relative_1  );

RelativeLayout relative_2  = (RelativeLayout) mainView.findViewById(R.id.relative_2);

relative_1.addView(surface_1)
relative_2.addView(surface_2)

через 10 секунд (в сообщении с задержкой обработчика). Я написал код ниже.

    int childCount = relative_2.getChildCount();
    if (childCount > 0) {
     View temp1 = relative_2.getChildAt(0);
     relative_2.removeView(temp1);
    }

    relative_2.addView(surface_1) // This line gives exception 
                               The specified child already has a parent. 
                            You must call removeView() on the child's 
                            parent first.
...