#android #kotlin #android-nestedscrollview
#Android #kotlin #android-вложенный scrollview
Вопрос:
У меня есть вложенный ScrollView, который содержит множество компонентов, таких как recyclerview, ViewPager… У меня есть EditText для поиска.Кроме того, панель приложений, которая содержит значок поиска.Когда я нажимаю на значок поиска, EditText опускается, а когда я нажимаю второй раз на него, он скользит вверх. Моя проблема в том, что когда я прокручиваю действие вниз, например, и когда я нажимаю на поиск EditText, действие не фиксируется, перемещается вверх и за пределы экрана. Вот main_activity.xml код :
<LinearLayout 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="match_parent"
android:background="@color/grey"
android:fitsSystemWindows="false"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
android:id="@ id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/whiteFour"
android:paddingTop="@dimen/spacing_medium"
android:paddingBottom="@dimen/spacing_medium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@ id/searchButtonMain"
android:layout_width="30dp"
android:layout_height="28dp"
android:layout_marginEnd="@dimen/spacing_middle"
android:adjustViewBounds="true"
android:tint="@color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@ id/Chart"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_search" />
<.....>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.appbar.AppBarLayout>
<LinearLayout
android:id="@ id/lytSearchView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/whiteFour"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0">
<com.google.android.material.textfield.TextInputEditText
android:id="@ id/searchFields"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="10dp"
android:background="@drawable/border"
android:drawableStart="@drawable/icn_search_x"
android:drawablePadding="@dimen/spacing_large"
android:fontFamily="@font/cairo"
android:gravity="left"
android:hint="@string/search_product"
android:inputType="text"
android:lineHeight="18dp"
android:maxLines="1"
android:paddingStart="15dp"
android:paddingTop="5dp"
android:paddingEnd="15dp"
android:paddingBottom="5dp"
android:textColorHint="@color/greyish"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
</LinearLayout>
<androidx.core.widget.NestedScrollView
android:id="@ id/nestedScrollView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/grey"
android:clipToPadding="true"
android:fillViewport="true"
android:scrollbars="none"
android:scrollingCache="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@ id/appBarLayout">
<................>
Когда я нажимаю на кнопку поиска :
searchButtonMain.setOnClickListener {
if (firstClickSearch) {
val animation = AnimationUtils.loadAnimation(
this, R.anim.slide_up
)
//appending animation to textView
lytSearchView.startAnimation(animation)
lytSearchView.visibility = View.GONE
firstClickSearch = false
} else {
val animation = AnimationUtils.loadAnimation(
this, R.anim.slide_down
)
//appending animation to textView
lytSearchView.startAnimation(animation)
lytSearchView.visibility = View.VISIBLE
firstClickSearch = true
}
}
Итак, что я должен сделать, чтобы исправить вложенный ScrollView при нажатии на поиск EditText с помощью Kotlin
Комментарии:
1. То, что вы ищете, вызывается
android:windowSoftInputMode
в файле манифеста для вашего тега активности. Попробуйте использоватьadjustNothing
илиadjustPan
. Исходя из вопроса, я не уверен, каково ваше ожидаемое поведение, но это поможет.2. Нет, у меня все та же ошибка. Когда я нажимаю на значок поиска в панели приложений, текст редактирования перемещается вниз, когда текст редактирования перемещается вниз, все вложенные ScrollView перемещаются вниз, а когда я нажимаю второй раз на значок поиска, текст редактирования перемещается вверх, а все вложенные ScrollView перемещаются вверх, я хочу исправить вложенный ScrollView