高度和边距不适用于膨胀和添加视图?
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_marginTop
和layout_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
这是我的 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_marginTop
和layout_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