java - 如何将线性布局(作为子级)动态添加到约束布局(父级)?

标签 java android

我定义了一种创建线性布局并将其添加到父布局的方法。但它没有用。我想我弄错了。

    public void methodName() {
        LinearLayout linearLayout = new LinearLayout(MainActivity.this);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
        linearLayout.setLayoutParams(params);
        linearLayout.setOrientation(LinearLayout.HORIZONTAL);
        linearLayout.setBackgroundColor(Color.RED);
        ConstraintLayout main = (ConstraintLayout) findViewById(R.id.mainLayout);
        main.addView(linearLayout);
   }

最佳答案

要将 View 添加到 ConstraintLayout,您必须使用 ConstraintSet 添加约束。

在约束布局中添加动态 View 时,它与其他布局有点不同。您还需要像下面这样指定约束:-

     ConstraintLayout main = (ConstraintLayout) findViewById(R.id.mainLayout);
     ConstraintSet set = new ConstraintSet();

     LinearLayout linearLayout = new LinearLayout(MainActivity.this);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
     linearLayout.setLayoutParams(params);
     linearLayout.setOrientation(LinearLayout.HORIZONTAL);
     linearLayout.setBackgroundColor(Color.RED);
     main.addView(linearLayout,0);
     set.clone(main);
     set.connect(linearLayout.getId(), ConstraintSet.TOP, main.getId(), ConstraintSet.TOP, 60);
     set.applyTo(main);

关于java - 如何将线性布局(作为子级)动态添加到约束布局(父级)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48963585/

相关文章:

安卓工作室 SDK

java - 套接字 - C 和 Java 发送之间的区别

java - 使用Java扫描WiFi

java - spring security 没有 AuthenticationSuccessHandler 和 AuthenticationFalureHandler 类型的合格 bean

android - 使用 Titanium 识别应用是否为首次安装

java - 重载Android应用程序?

android - ListView 工具 :listitem not working in android studio 2. 2 稳定 channel

Java lambda 表达式、强制转换和比较器

java - Maven 和 Hsqldb : org. hsqldb.HsqlException : Client driver version greater than '2.1.0.0' is required. HSQLDB 服务器版本为 '2.3.4'(在 mac 上)

AndroidX:Appcompat I:艺术错误 android.view.View$OnUnhandledKeyEventListener