使用inflater包含edittext时按钮不会下降

时间:2017-12-15 14:34:56

标签: android android-layout layout-inflater

我使用inflater来复制/包含来自子布局的edittext,但问题是应用程序添加/包含/复制子布局后保存按钮不会停止。我想要的是,按钮位于最后一个“edittext”的末尾。

enter image description here

这是我的主要布局:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent" >


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_layout"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <include layout="@layout/stocker_child" />

    <Button
        android:id="@+id/save"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Simpan" />

</LinearLayout>

 </ScrollView>

这是子布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="60dp">

<EditText
    android:id="@+id/barcodeText0"
    android:tag="barcodeText0"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginEnd="17dp"
    android:layout_marginStart="16dp"
    android:ems="10"
    android:inputType="textPersonName"
    app:layout_constraintBottom_toBottomOf="@+id/qtyText0"
    app:layout_constraintEnd_toStartOf="@+id/qtyText0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@+id/qtyText0" />

<EditText
    android:id="@+id/qtyText0"
    android:tag="qtyText0"
    android:layout_width="78dp"
    android:layout_height="47dp"
    android:layout_marginEnd="12dp"
    android:layout_marginTop="16dp"
    android:ems="10"
    android:inputType="textPhonetic|numberDecimal" android:digits="/0123456789.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/barcodeText0"
    app:layout_constraintTop_toTopOf="parent" />
 </android.support.constraint.ConstraintLayout>

这就是我如何给子布局充气:

                    val inflater = activity.layoutInflater
                val myLayout = inflater.inflate(R.layout.stocker_child, mainLayout, false)

                mainLayout.addView(myLayout)
                mainLayout.requestFocus()

1 个答案:

答案 0 :(得分:2)

mainLayout.addView()会将您的观点添加为mainLayout中的最后一项。使用不同的方法重载:

mainLayout.addView(myLayout, mainLayout.getChildCount() - 1);

这应该在您的按钮上方添加myLayout