Переместить RecyclerView после нажатия на SearchView

в моей программе я использую представление поиска с recyclerview, в xml представление поиска находится над представлением recycler, теперь моя проблема в том, что когда я нажимаю на позицию представления поиска, recyclerview поднимается и помещается в представление поиска.

Я использую ConstraintLayout, и если я изменю соединения макета элементов, кнопка также поднимется

Переместить RecyclerView после нажатия на SearchView

Переместить RecyclerView после нажатия на SearchView

XML:

<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:layout_width = "match_parent"
android:layout_height = "match_parent"
tools:context = "com.example.user.classmanager.StudentList"
tools:layout_editor_absoluteY = "25dp"
tools:layout_editor_absoluteX = "0dp">

<android.support.v7.widget.Toolbar
    android:id = "@+id/toolbar_StudentList"
    android:layout_width = "0dp"
    android:layout_height = "56dp"
    android:minHeight = "?attr/actionBarSize"
    android:theme = "?attr/actionBarTheme"
    tools:layout_constraintTop_creator = "1"
    tools:layout_constraintRight_creator = "1"
    app:layout_constraintRight_toRightOf = "parent"
    tools:layout_constraintLeft_creator = "1"
    app:layout_constraintLeft_toLeftOf = "parent"
    app:layout_constraintTop_toTopOf = "parent" />

<Button
    android:id = "@+id/button_StudentList"
    android:layout_width = "35dp"
    android:layout_height = "35dp"
    android:layout_marginBottom = "8dp"
    android:layout_marginEnd = "8dp"
    android:layout_marginLeft = "8dp"
    android:layout_marginRight = "8dp"
    android:layout_marginStart = "8dp"
    android:text = "B"
    app:layout_constraintBottom_toBottomOf = "@+id/searchView_StudentList"
    app:layout_constraintHorizontal_bias = "0.307"
    app:layout_constraintLeft_toLeftOf = "parent"
    app:layout_constraintRight_toLeftOf = "@+id/searchView_StudentList"
    app:layout_constraintTop_toTopOf = "@+id/searchView_StudentList"
    app:layout_constraintVertical_bias = "1.0"
    tools:layout_constraintLeft_creator = "1"
    tools:layout_constraintTop_creator = "1" />

<android.support.v7.widget.RecyclerView
    android:id = "@+id/recycler_view_StudentList"
    android:layout_width = "370dp"
    android:layout_height = "450dp"
    android:layout_marginBottom = "0dp"
    android:layout_marginEnd = "5dp"
    android:layout_marginLeft = "5dp"
    android:layout_marginRight = "5dp"
    android:layout_marginStart = "5dp"
    android:layout_marginTop = "8dp"
    android:paddingLeft = "7dp"
    android:paddingRight = "7dp"
    android:paddingTop = "22dp"
    app:layout_constraintBottom_toBottomOf = "parent"
    app:layout_constraintLeft_toLeftOf = "parent"
    app:layout_constraintRight_toRightOf = "parent"
    app:layout_constraintTop_toBottomOf = "@+id/searchView_StudentList"
    app:layout_constraintVertical_bias = "0.371"
    tools:layout_constraintBottom_creator = "1"
    tools:layout_constraintLeft_creator = "1"
    tools:layout_constraintRight_creator = "1" />

<SearchView
    android:id = "@+id/searchView_StudentList"
    android:layout_width = "300dp"
    android:layout_height = "0dp"
    android:layout_marginEnd = "7dp"
    android:layout_marginRight = "7dp"
    android:layout_marginTop = "13dp"
    app:layout_constraintRight_toRightOf = "parent"
    app:layout_constraintTop_toBottomOf = "@+id/toolbar_StudentList"
    tools:layout_constraintRight_creator = "1"
    tools:layout_constraintTop_creator = "1" />

опубликуйте свою активность xml .. я исправлю ..

Santanu Sur 09.03.2018 19:38

опубликуйте xml файл ..

EL TEGANI MOHAMED HAMAD GABIR 09.03.2018 20:05

теперь вы можете увидеть @Santanu Sur @ AL Tegani

Nima Khalili 10.03.2018 15:49
0
3
127
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы должны использовать LinearLayout с vertical orientation.

Если вы хотите использовать RelativeLayout, просто добавьте строку в свое представление xml.

android:layout_below = "@+id/view_id" //Positions the top edge of this view below the given anchor view ID.

But I think you have used ConstraintLayout. Because only this Layout creates this kind of issue. So it will be better to skip this layout if you use it.

да, я использую ConstraintLayout, но вы можете сказать мне, в чем проблема @Shamsul Arafin Mahtab

Nima Khalili 10.03.2018 15:55
Ответ принят как подходящий

Либо уберите фиксированную высоту recyclerView

  android:layout_height = "wrap_content" 

или (лучше) удалите это

  app:layout_constraintBottom_toBottomOf = "parent"

Макет ограничения не может разрешить фиксированную высоту в dp и выше нижней части родительского (своего рода круговая зависимость)

На самом деле спасибо, моя проблема решена (второй способ лучше), но один вопрос, теперь очень мало ходов, это нормально? @Santanu Sur

Nima Khalili 10.03.2018 16:22

сложный вопрос, логически это должно сработать, я сомневаюсь, что это не сработает так, как вы ожидаете ... но все же, если у вас возникнут какие-либо проблемы ... не стесняйтесь обновлять :) @NimaKhalli

Santanu Sur 10.03.2018 16:26

Другие вопросы по теме