【问题标题】:App crashing two linear layout inside other linear layout with java [duplicate]应用程序使用java在其他线性布局中崩溃两个线性布局[重复]
【发布时间】:2022-02-15 17:20:36
【问题描述】:

大家好,我想在 android studio 中动态(不使用 xml)进行布局,结构如下: 线性布局(水平) --线性布局(垂直) ----TextView1 ----TextView2 --线性布局(垂直) ----TextView3 ----TextView4

但应用程序因错误而崩溃: 指定的孩子已经有一个父母。您必须首先在孩子的父母上调用 removeView()

代码:

公共类 MainActivity 扩展 AppCompatActivity {

LinearLayout linearLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

   LinearLayout HLL = new LinearLayout(this);
   LinearLayout V1LL = new LinearLayout(this);
   LinearLayout V2LL = new LinearLayout(this);

   HLL.setOrientation(LinearLayout.HORIZONTAL);
   V1LL.setOrientation(LinearLayout.VERTICAL);
   V2LL.setOrientation(LinearLayout.VERTICAL);

   V1LL.setBackgroundColor(Color.parseColor("#fcba03"));
   V2LL.setBackgroundColor(Color.parseColor("#fc03e3"));

   LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
           LinearLayout.LayoutParams.MATCH_PARENT,
           LinearLayout.LayoutParams.MATCH_PARENT
   );

    LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(
            0,
            LinearLayout.LayoutParams.MATCH_PARENT,
            1
    );


   setContentView(HLL,lp);
   setContentView(V1LL,lp);
   setContentView(V2LL,lp);

   HLL.addView(V1LL);
   HLL.addView(V2LL);


}

}

【问题讨论】:

    标签: java android


    【解决方案1】:

    为什么要多次设置setContentViewActivity 只能包含一个 View 作为内容(但这可能是 ViewGroup 有多个孩子)。只需将内部LinearLayouts 添加到主要父级LinearLayout 然后调用setContentView 仅传递这个主要的

    HLL.addView(V1LL);
    HLL.addView(V2LL);
    
    setContentView(HLL, lp);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      • 2014-08-24
      相关资源
      最近更新 更多