Chris
Chris

Reputation: 4370

android.support.v7.widget.Toolbar pushes content to the bottom

android.support.v7.widget.Toolbar seems to push the content to the bottom, check out these screenshots:

This screen is the original state when switching to the fragment:enter image description here

After scrolling down a little bit I can see the full layout:enter image description here

So how can I prevent the scrolling? If I remove android.support.v7.widget.Toolbar from the xml code everything works as expected (except for the missing toolbar lol).

This is the code of the main activity:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout android:id="@+id/main_content"
     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:fitsSystemWindows="true"
     tools:context=".activity.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/appbar_padding_top"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_menu_add"/>

</android.support.design.widget.CoordinatorLayout>

And heres the code of the chat fragment:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical" >

    <android.support.v7.widget.RecyclerView
        android:id="@+id/list"
        android:scrollbars="vertical"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:divider="@null"
        android:stackFromBottom="true"
        android:transcriptMode="normal" />

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#ffffff"
        android:orientation="horizontal"
        android:padding="2dp" >

        <EditText
            android:id="@+id/enter_message"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:layout_weight="0.85"
            android:hint="hint"
            android:inputType="textCapSentences|textMultiLine"
            android:maxLines="5" />

        <Button
            android:id="@+id/send_button"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_gravity="center"
            android:layout_marginRight="5dp"
            android:background="@drawable/common_google_signin_btn_icon_dark_normal" />
    </LinearLayout>

</LinearLayout>

Removing android:fitsSystemWindows="true", as suggested in other threads, didn't change anything. Thanks in advance!

Upvotes: 1

Views: 523

Answers (2)

natario
natario

Reputation: 25194

I’m not sure I got your desired behavior. You probably want to leave the layout as is but just remove the scroll flags from the toolbar:

app:layout_scrollFlags="scroll|enterAlways"

These flags tell the toolbar to listen to scrolls on the recycler view and react accordingly. As I understand, you want the toolbar to stay fixed. So, remove that line.

Upvotes: 2

kidustiliksew
kidustiliksew

Reputation: 463

Replace CoordinatorLayout with RelativeLayout in your main activity layout.

Also, add this to your RecyclerView

app:layout_behavior="@string/appbar_scrolling_view_behavior"

Side Note: Removing CoordinatorLayout affects your FloatingActionButton behavior. You can remove the FloatingActionButton and place it in your chat fragment. Make sure you replace LinearLayout with CoordinatorLayout if you are going to do that

Upvotes: 0

Related Questions