Если вы собираетесь использовать несколько буферов, я думаю, что самое главное - установить скрытые так, чтобы они позволяли вам переключаться с буферами, даже если у вас есть несохраненные изменения в том, что вы уходите.
Использование EditText setOnClickListener
будет работать, если вы установите setTextIsSelectable
в true.
В XML:
<android.support.design.widget.TextInputLayout
android:id="@+id/textInpuLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/hint_edit_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<android.support.design.widget.TextInputEditText
android:id="@+id/textInpuEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:inputType="date"/>
</android.support.design.widget.TextInputLayout>
В соответствующем фрагменте или задании :
mTextInpuEditText.setEnabled(true);
mTextInpuEditText.setTextIsSelectable(true);
mTextInpuEditText.setFocusable(false);
mTextInpuEditText.setFocusableInTouchMode(false);
mTextInpuEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "Edit Text is clicked");
}
});
Используйте события onTouch или поместите кликабельный FrameLayout поверх EditText, чтобы отловить события клика. Сделайте так, чтобы видимость FrameLayout исчезла, когда вы хотите, чтобы ваш текст редактирования был редактируемым