编辑文本';Android中的s宽度与父项';s宽度
我有一个包含输入容器的布局。该输入容器可以通过编程方式被任何类型的视图替换。 我的输入容器如下所示编辑文本';Android中的s宽度与父项';s宽度,android,kotlin,android-edittext,Android,Kotlin,Android Edittext,我有一个包含输入容器的布局。该输入容器可以通过编程方式被任何类型的视图替换。 我的输入容器如下所示 <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/inputContainer" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="8dp"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/inputContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/questionLabel">
</androidx.constraintlayout.widget.ConstraintLayout>
这是我的文本区域布局
<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/textArea"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="7"
android:minLines="3"
android:text=""
android:scrollbars="vertical"
android:scrollbarStyle="insideOverlay"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
当我运行应用程序时,我发现文本区域宽度与父级不匹配。
看起来像这样。如果您看到图像中的线条。它需要一直扩展到父级的右侧。
我希望编辑文本的宽度与父文本匹配。有人能给我指点一下我可能做错了什么吗?我已尝试在输入容器中将布局宽度设置为“匹配父项”。但是仍然没有运气。使用
0dp
来显示EditText
<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/textArea"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:maxLines="7"
android:minLines="3"
android:text=""
android:scrollbars="vertical"
android:scrollbarStyle="insideOverlay"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_
toTopOf="parent" />
设置editText的父级:
val inflater = LayoutInflater.from(context)
val parent = findViewById(R.id.inputContainer) as ConstraintLayout
var edittext = inflater.inflate(R.layout.text_area, parent, true) as EditText
inputContainer.addView(edittext)
将null作为父对象而不是视图组传递
您应该将视图组作为父对象传递 因为您要将null作为父对象而不是视图组传递,所以我添加了视图组而不是null,它现在可以工作了。请尝试添加padding=“0dp”、ndroid:includeFontPadding=“false”和android:linespaccingextra=“0dp”
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/inputContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/questionLabel">
</androidx.constraintlayout.widget.ConstraintLayout>
val inflater = LayoutInflater.from(context)
val parent = findViewById(R.id.inputContainer) as ConstraintLayout
var edittext = inflater.inflate(R.layout.text_area, parent, true) as EditText
inputContainer.addView(edittext)