Я создал метод для повторного использования 4 раза, чтобы уменьшить количество кода, который я вставляю. По какой-то причине, когда код превращен в функцию, он больше не работает.
Он работает, не будучи функцией.
private fun onEditTextAnimation(view: View, b: Boolean) {
if (b) {
view.customEditTextBoxMain.layoutParams.height = pxToDP(35)
view.customEditTextBoxHint.layoutParams.height = pxToDP(15)
view.customEditTextBoxHint.visibility = View.VISIBLE
view.redLine.visibility = View.VISIBLE
}
if (!b) {
view.customEditTextBoxMain.layoutParams.height = pxToDP(50)
view.customEditTextBoxHint.visibility = View.GONE
view.redLine.visibility = View.GONE
}
}
// THIS HERE IS THE FUNCTION BEING USED IN A PLACE WHERE THE FUNCTIONS'S BODY WORKED WITHOUT BEING EXTRACTED INTO A FUNCTION
// THIS HERE IS THE FUNCTION BEING USED IN A PLACE WHERE THE FUNCTIONS'S BODY WORKED WITHOUT BEING EXTRACTED INTO A FUNCTION
jiken0.customEditTextBoxMain.setOnFocusChangeListener { view, b -> onEditTextAnimation(view, b) }
// THIS HERE IS THE FUNCTION BEING USED IN A PLACE WHERE THE FUNCTIONS'S BODY WORKED WITHOUT BEING EXTRACTED INTO A FUNCTION. BELOW ARE THE OTHER 3 FUNCTIONS FOR WHICH I INTENDED THE EXTRACTED FUNCTION
// THIS HERE IS THE FUNCTION BEING USED IN A PLACE WHERE THE FUNCTIONS'S BODY WORKED WITHOUT BEING EXTRACTED INTO A FUNCTION. BELOW ARE THE OTHER 3 FUNCTIONS FOR WHICH I INTENDED THE EXTRACTED FUNCTION
jiken1.customEditTextBoxMain.setOnFocusChangeListener { view, b ->
if (b) {
jiken1.customEditTextBoxMain.layoutParams.height = pxToDP(35)
jiken1.customEditTextBoxHint.layoutParams.height = pxToDP(15)
jiken1.customEditTextBoxHint.visibility = View.VISIBLE
jiken1.redLine.visibility = View.VISIBLE
}
if (!b) {
jiken1.customEditTextBoxMain.layoutParams.height = pxToDP(50)
jiken1.customEditTextBoxHint.visibility = View.GONE
jiken1.redLine.visibility = View.GONE
}
}
jiken2.customEditTextBoxMain.setOnFocusChangeListener { view, b ->
if (b) {
jiken2.customEditTextBoxMain.layoutParams.height = pxToDP(35)
jiken2.customEditTextBoxHint.layoutParams.height = pxToDP(15)
jiken2.customEditTextBoxHint.visibility = View.VISIBLE
jiken2.redLine.visibility = View.VISIBLE
}
if (!b) {
jiken2.customEditTextBoxMain.layoutParams.height = pxToDP(50)
jiken2.customEditTextBoxHint.visibility = View.GONE
jiken2.redLine.visibility = View.GONE
}
}
jiken3.customEditTextBoxMain.setOnFocusChangeListener { view, b ->
if (b) {
jiken3.customEditTextBoxMain.layoutParams.height = pxToDP(35)
jiken3.customEditTextBoxHint.layoutParams.height = pxToDP(15)
jiken3.customEditTextBoxHint.visibility = View.VISIBLE
jiken3.redLine.visibility = View.VISIBLE
}
if (!b) {
jiken3.customEditTextBoxMain.layoutParams.height = pxToDP(50)
jiken3.customEditTextBoxHint.visibility = View.GONE
jiken3.redLine.visibility = View.GONE
}
}
}
Это XML макета, который яповторное использование:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:paddingLeft="20dp"
android:focusable="true"
android:id="@+id/customEditTextBoxMain"
android:hint="PlaceolderMain"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@android:color/white"
android:ems="10"
android:inputType="textPersonName"/>
<View
android:visibility="gone"
android:id="@+id/redLine"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/holo_red_light"/>
<TextView
android:visibility="gone"
android:textSize="10dp"
android:id="@+id/customEditTextBoxHint"
android:layout_width="match_parent"
android:layout_height="15dp"
android:background="@android:color/white"
android:hint="PlaceolderHint"
android:paddingLeft="20dp"
android:gravity="left"/>
</LinearLayout>
Каждое включение этого макета называется "jiken0", "jiken1" и т. д.
Я хотел бы повторно использовать эту функцию в 4 нужных ей случаяхбудет использоваться.