代码之家  ›  专栏  ›  技术社区  ›  Damn Vegetables

以编程方式将按钮添加到ConstraintLayout的流中?

  •  0
  • Damn Vegetables  · 技术社区  · 3 年前

    我尝试了以下操作,但没有显示任何按钮。

    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    
        val flow = findViewById<Flow>(R.id.flow);
        val lay = flow.parent as ConstraintLayout;
        val cs = ConstraintSet();
        cs.clone(lay);
    
        for (i in 1 .. 10)
        {
            val btn = Button(this)
            btn.text = "Test ${i}";
            btn.id = 49393+i;
            flow.addView(btn)
            cs.constrainWidth(btn.id, 400);
            cs.constrainHeight(btn.id, 100);
            cs.applyTo(lay);
        }
    }
    
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            xmlns:app="http://schemas.android.com/apk/res-auto">
        <ScrollView
                android:id="@+id/sv"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                <TextView
                        android:id="@+id/textview1"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/large_text"
                        android:textAppearance="@style/TextAppearance.AppCompat.Large"
                        android:textIsSelectable="true" />
        </ScrollView>
        <androidx.constraintlayout.helper.widget.Flow
            android:id="@+id/flow"
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:background="#FF0000"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
            />
    </androidx.constraintlayout.widget.ConstraintLayout>
    
    1 回复  |  直到 3 年前
        1
  •  0
  •   Henry Twist Jjonns    3 年前

    Flow.addView 方法仅将其添加到辅助对象(如果 已经 有关家庭的子女 ConstraintLayout

    documentation :

    引用的视图必须是辅助对象父视图的子视图。

    推荐文章