У меня есть Fragment
с простой раскладкой:ConstraintLayout
-> LinearLayout
-> TextInputLayout
-> TextInputEditText
Выглядит нормально и работает, но когда я перехожу к другому Fragment
, меню которого текущее получает уничтожено, LeakCanary показывает мне неожиданную утечку памяти , связанную с TextInputEditText
, хотя я установил ее на null
в onDestroyView()
.
LeakCanary отчеты:
ConstraintLayout leaked
-> InputMethodManager$ControlledInputConnectionWrapper.mInputConnection
-> EditableInputConnection.mTextView
-> TextInputEditText.mParent
MyFragment.java
public class MyFragment extends Fragment {
private View view;
private EditText et;
public MyFragment() {}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.my_layout, container, false);
et = view.findViewById(R.id.my_et);
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
et = null;
view = null;
// No difference, if I call super.onDestroyView(); here
}
}
my_layout.xml
<?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:id="@+id/my_cl"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<android.support.design.widget.TextInputEditText
android:id="@+id/my_et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:inputType="numberPassword" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
Есть идеи?Заранее спасибо!
Редактировать 1 Утечка не появляется, когда я удаляю android.support.design.widget.TextInputEditText
из макета.