Я пытаюсь создать действие с парой элементов TextInputEditText. Они размещаются примерно на полпути вниз по странице, поэтому, когда они появляются, они закрываются клавиатурой. Таким образом, я пытаюсь использовать windowSoftInputMode = "adjustPan" внутри AppManifest.xml, чтобы экран прокручивался, чтобы текстовые поля оставались в поле зрения при наборе текста.
Однако все попытки сделать это, похоже, терпят неудачу. Ниже представлена иерархия макетов, которую я использую, а также некоторые примеры решений, которые я уже безрезультатно пытался.
макет xml
<ScrollView
android:layout_height = "match_parent"
android:layout_width = "match_parent"
xmlns:android = "http://schemas.android.com/apk/res/android"
android:fillViewport = "true"
android:isScrollContainer = "false">
<android.support.constraint.ConstraintLayout
xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
android:layout_width = "match_parent"
android:layout_height = "wrap_content">
<android.support.design.widget.TextInputLayout
android:id = "@+id/inputA"
android:layout_width = "match_parent"
android:layout_height = "wrap_content">
<android.support.design.widget.TextInputEditText
android:id = "@+id/inputAText"
android:layout_width = "match_parent"
android:layout_height = "match_parent"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id = "@+id/inputB"
android:layout_width = "match_parent"
android:layout_height = "wrap_content">
<android.support.design.widget.TextInputEditText
android:id = "@+id/inputBText"
android:layout_width = "match_parent"
android:layout_height = "match_parent"/>
</android.support.design.widget.TextInputLayout>
</android.support.constraint.ConstraintLayout>
</ScrollView>
Фрагмент AndroidManifest.xml
<activity
android:name = ".activities.MyActivity"
android:windowSoftInputMode = "adjustPan"
android:screenOrientation = "sensorPortrait"
android:theme = "@style/AppTheme.NoActionBar" />
Попытки решения
windowSoftInputMode = "adjustPan" к соответствующему activity в AppManifest.xml (я также пробовал adjustResize и adjustPan|adjustNothing в соответствии с другими предложениями StackOverflow)ConstraintLayout в ScrollView.android:isScrollContainer = "false" в указанный ScrollViewConstraintLayout и TextInputEditText, ограниченные нижней частью указанного макета.TextInputEditText на EditText и удалите TextInputLayoutConstraintLayout на RelativeLayoutЯ в растерянности из-за того, что должно быть довольно простой реализацией. Любые дальнейшие предложения приветствуются. При необходимости я с радостью предоставлю больше примеров кода.
Увы, ни одно решение не помогло, но спасибо!
Не понял тебя. (Мой плохой английский). Могу я узнать, что вы пытаетесь сказать? Какой из них сработал?
Извините, они оба не сработали.
Вы пробовали без строки android: windowSoftInputMode = "adjustPan" в манифесте. Думаю, по умолчанию это сделает вид. Вы используете реальное устройство для тестирования или эмулятор?
Я пробовал удалить android:windowSoftInputMode = "adjustPan" из манифеста, но, к сожалению, это тоже не сработало.
Вы используете настоящее устройство или эмулятор?
Ах, извините, тестирую на нескольких реальных устройствах.
Позвольте нам продолжить обсуждение в чате.
Нашел проблему! В своей теме я заявил <item name = "android:windowTranslucentStatus">true</item>. По какой-то причине это ломает windowSoftInputMode = "adjustPan", и поэтому я удалил его.
Чтобы строка состояния была прозрачной, я использую <item name = "android:statusBarColor">@color/transparent</item>.
Надеюсь, кто-нибудь когда-нибудь сочтет это полезным.
вы пробовали без просмотра прокрутки ?. есть только ограничить макет. В худшем случае попробуйте относительный макет вместо ограничения макета .... может работать или не работать