Android layout_below not showing

I am trying to position my RecyclerView so that it is below my AppBarLayout, however the layout_below attribute is not being recognised by android studio? It does not show in the auto-complete.

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context=".Fragment.SearchFragment">      <com.google.android.material.appbar.AppBarLayout         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/bar"         android:background="?android:attr/windowBackground">      <androidx.appcompat.widget.Toolbar         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:background="?android:attr/windowBackground"         android:id="@+id/toolbar">      <ImageView         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:src="@drawable/ic_search_light"         android:layout_marginRight="10dp"/>      <EditText         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/search_bar"         android:background="@android:color/transparent"         android:hint="Search..."         android:layout_marginStart="10dp"         android:layout_marginLeft="10dp"/>      </androidx.appcompat.widget.Toolbar>     </com.google.android.material.appbar.AppBarLayout>      <androidx.recyclerview.widget.RecyclerView         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/recycler_view" />  </FrameLayout> 
Add Comment
4 Answer(s)

Please change your layout as below. Used LinearLayout with property android:orientation="vertical" instead of FrameLayout.

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context=".Fragment.SearchFragment"     android:orientation="vertical">      <com.google.android.material.appbar.AppBarLayout         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/bar"         android:background="?android:attr/windowBackground">          <androidx.appcompat.widget.Toolbar             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:background="?android:attr/windowBackground"             android:id="@+id/toolbar">              <ImageView                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:src="@drawable/ic_search_light"                 android:layout_marginRight="10dp"/>              <EditText                 android:layout_width="match_parent"                 android:layout_height="wrap_content"                 android:id="@+id/search_bar"                 android:background="@android:color/transparent"                 android:hint="Search..."                 android:layout_marginStart="10dp"                 android:layout_marginLeft="10dp"/>          </androidx.appcompat.widget.Toolbar>     </com.google.android.material.appbar.AppBarLayout>      <androidx.recyclerview.widget.RecyclerView         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/recycler_view" />  </LinearLayout> 
Add Comment

Layout_Below exists in the relativeLayout , if you want to get access to that , you may need to switch to RelativeLayout or Alternativaly use linear layout if you want to put views one under the other by setting the orientation to vertical .

Answered on July 16, 2020.
Add Comment

This is not correct. A RecyclerView should never go underneath an AppBarLayout. What you should do is ensure that there is sufficient margin between the RecyclerView and the AppbarLayout

Add Comment

you need the layout like ConstraintLayout, RelativeLayout and LinearLayout.

example:

ConstraintLayout :

   <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     xmlns:app="http://schemas.android.com/apk/res-auto">     <androidx.constraintlayout.widget.ConstraintLayout         android:layout_width="match_parent"         android:layout_height="match_parent">       <com.google.android.material.appbar.AppBarLayout         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/bar"         android:background="?android:attr/windowBackground">          <androidx.appcompat.widget.Toolbar             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:background="?android:attr/windowBackground"             android:id="@+id/toolbar">              <ImageView                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:src="@drawable/ic_search_light"                 android:layout_marginRight="10dp"/>              <EditText                 android:layout_width="match_parent"                 android:layout_height="wrap_content"                 android:id="@+id/search_bar"                 android:background="@android:color/transparent"                 android:hint="Search..."                 android:layout_marginStart="10dp"                 android:layout_marginLeft="10dp"/>          </androidx.appcompat.widget.Toolbar>     </com.google.android.material.appbar.AppBarLayout>      <androidx.recyclerview.widget.RecyclerView         app:layout_constraintTop_toBottomOf="@id/bar"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/recycler_view" />       </androidx.constraintlayout.widget.ConstraintLayout>  </FrameLayout> 

RelativeLayout :

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     xmlns:app="http://schemas.android.com/apk/res-auto">     <RelativeLayout         android:layout_width="match_parent"         android:layout_height="match_parent">       <com.google.android.material.appbar.AppBarLayout         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/bar"         android:background="?android:attr/windowBackground">          <androidx.appcompat.widget.Toolbar             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:background="?android:attr/windowBackground"             android:id="@+id/toolbar">              <ImageView                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:src="@drawable/ic_search_light"                 android:layout_marginRight="10dp"/>              <EditText                 android:layout_width="match_parent"                 android:layout_height="wrap_content"                 android:id="@+id/search_bar"                 android:background="@android:color/transparent"                 android:hint="Search..."                 android:layout_marginStart="10dp"                 android:layout_marginLeft="10dp"/>          </androidx.appcompat.widget.Toolbar>     </com.google.android.material.appbar.AppBarLayout>      <androidx.recyclerview.widget.RecyclerView         android:layout_below="@id/bar"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/recycler_view" />       </RelativeLayout> 

LinearLayout:

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     xmlns:app="http://schemas.android.com/apk/res-auto">     <LinearLayout         android:orientation="vertical"         android:layout_width="match_parent"         android:layout_height="match_parent">       <com.google.android.material.appbar.AppBarLayout         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/bar"         android:background="?android:attr/windowBackground">          <androidx.appcompat.widget.Toolbar             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:background="?android:attr/windowBackground"             android:id="@+id/toolbar">              <ImageView                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:src="@drawable/ic_search_light"                 android:layout_marginRight="10dp"/>              <EditText                 android:layout_width="match_parent"                 android:layout_height="wrap_content"                 android:id="@+id/search_bar"                 android:background="@android:color/transparent"                 android:hint="Search..."                 android:layout_marginStart="10dp"                 android:layout_marginLeft="10dp"/>          </androidx.appcompat.widget.Toolbar>     </com.google.android.material.appbar.AppBarLayout>      <androidx.recyclerview.widget.RecyclerView          android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/recycler_view" />       </LinearLayout>            </FrameLayout> 
Answered on July 16, 2020.
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.