【问题标题】:Adding linear layout 2 to linear layout 1将线性布局 2 添加到线性布局 1
【发布时间】:2014-09-02 15:35:01
【问题描述】:

我正在尝试将 linearlayout 2 ["secondrow"] 添加到 linearlayout 1["firstrow"] 但它会引发异常 指定的孩子已经有一个父母,你必须首先在孩子父母上调用 removeview()。linearlayout1,linearlayout 2,linearlayout 3,linearlayout 4 每个有 4 个按钮。我的 java 代码如下

----------------Java 代码----- ---------

    private LinearLayout linearfirstRow;
        private LinearLayout linearsecondRow;
        private LinearLayout linearthirdRow;
        private LinearLayout linearfourthRow;
        private LinearLayout TemporaryLayout;
        linearfirstRow=(LinearLayout)findViewById(R.id.firstrow);
        linearsecondRow=(LinearLayout)findViewById(R.id.secondrow);
        linearthirdRow=(LinearLayout)findViewById(R.id.thirdrow);
        linearfourthRow=(LinearLayout)findViewById(R.id.fourththrow);
              TemporaryLayout=linearsecondRow;
                            linearfirstRow.removeAllViews();
                            linearsecondRow.removeAllViews();
          Throws error ---> linearfirstRow.addView(TemporaryLayout);

             <?xml version="1.0" encoding="utf-8"?>
                <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:orientation="vertical" >
                     <TextView
                            android:id="@+id/textView1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:text="Medium Text"
                            android:textAppearance="?android:attr/textAppearanceMedium" />
                           <LinearLayout
             firstrow-->   android:id="@+id/firstrow"
                        android:layout_width="match_parent"
                        android:layout_height="0dp" 
                        android:layout_weight="25"
                         >
                        <Button
                            android:id="@+id/btn1"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="1"
                            android:layout_weight="1" />

                        <Button
                            android:id="@+id/btn2"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="1"
                            android:layout_weight="1" />

                        <Button
                            android:id="@+id/btn3"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="1"
                            android:layout_weight="1" />
                        <Button
                            android:id="@+id/btn4"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="1"
                            android:layout_weight="1" />
                    </LinearLayout>
         secondrow-->       <LinearLayout
                        android:id="@+id/secondrow"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_weight="25"
                         >

                        <Button
                            android:id="@+id/btn5"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="2"
                            android:layout_weight="1" />

                        <Button
                            android:id="@+id/btn6"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="2"
                            android:layout_weight="1" />
                        <Button
                            android:id="@+id/btn7"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="2"
                            android:layout_weight="1" />
                        <Button
                            android:id="@+id/btn8"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="2"
                            android:layout_weight="1" />
                    </LinearLayout>
                    <LinearLayout
                        android:id="@+id/thirdrow"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"  
                        android:layout_weight="25" >

                        <Button
                            android:id="@+id/btn9"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="3"
                            android:layout_weight="1" />

                        <Button
                            android:id="@+id/btn10"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="3"
                            android:layout_weight="1" />
                        <Button
                            android:id="@+id/btn11"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="3"
                            android:layout_weight="1" />
                        <Button
                            android:id="@+id/btn12"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="3"
                            android:layout_weight="1" />
                    </LinearLayout>
                    <LinearLayout
                        android:id="@+id/fourththrow"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"  
                        android:layout_weight="25">

                        <Button
                            android:id="@+id/btn13"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="4"
                            android:layout_weight="1" />

                        <Button
                            android:id="@+id/btn14"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="4"
                            android:layout_weight="1" />
                        <Button
                            android:id="@+id/btn15"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="4"
                            android:layout_weight="1" />
                        <Button
                            android:id="@+id/btn16"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:text="4"
                            android:layout_weight="1" />
                    </LinearLayout>

                </LinearLayout>

【问题讨论】:

    标签: android eclipse


    【解决方案1】:

    您需要先将TemporaryLayout/linearsecondRow 从其父线性布局中分离出来,即

            private LinearLayout linearfirstRow;
            private LinearLayout linearsecondRow;
            private LinearLayout linearthirdRow;
            private LinearLayout linearfourthRow;
            private LinearLayout TemporaryLayout;
            linearfirstRow=(LinearLayout)findViewById(R.id.firstrow);
            linearsecondRow=(LinearLayout)findViewById(R.id.secondrow);
            linearthirdRow=(LinearLayout)findViewById(R.id.thirdrow);
            linearfourthRow=(LinearLayout)findViewById(R.id.fourththrow);
                  TemporaryLayout=linearsecondRow;
                                linearfirstRow.removeAllViews();
                                linearsecondRow.removeAllViews();
    
    //Add this although i dont know why the above two lines were used by you   
            ((LinearLayout)TemporaryLayout.getParent()).removeView(TemporaryLayout);
            linearfirstRow.addView(TemporaryLayout);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多