高度和边距不适用于膨胀和添加视图?

Height and margin not working with inflated and addview?

这是我的 EditText

<?xml version="1.0" encoding="utf-8"?>
<EditText
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="49dp"
    android:layout_marginTop="3dp"
    android:text=""
    android:ems="10"
    android:gravity="center_vertical"
    android:imeOptions="actionNext"
    android:maxLines="1"
    android:background="@drawable/profile_edt_round_corners"
    android:drawablePadding="5dp"
    android:textSize="14sp"
    android:hint=""
    tools:ignore="RtlSymmetry"
    android:textColor="#4a4a4a"/>

膨胀视图

private fun getRoundedEditText() =
    layoutInflater.inflate(R.layout.v_rounded_corners, null) as EditText

设置值

private fun addDataToParents() {
    val editTextView = getRoundedEditText()
    editTextView.setText("Parent 1")
    ll_parents_guardian_container.addView(editTextView)
    val editTextView2 = getRoundedEditText()
    editTextView2.setText("Parent 2")
    ll_parents_guardian_container.addView(editTextView2)
}

其中 ll_parents_guardian_container

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/ll_parents_guardian_container"
            android:orientation="vertical">
    </LinearLayout>

但是我已经在XML中定义的layout_marginToplayout_height没有反映在那里。

我发现了问题。

layoutInflater.inflate(R.layout.v_rounded_corners, null) as EditText

在扩充具有边距/高度属性的视图时,您不应将根作为 null 传递。这就是问题的原因。因为膨胀视图需要根来绘制布局参数。

所以用你要添加的视图来改变它。

layoutInflater.inflate(R.layout.v_rounded_corners, ll_parents_guardian_container ) as EditText