Reputation: 39
In my app, when the keyboard is invoked, the toolbar is moved upwards. How do I prevent the toolbar from moving upwards?
Here's the code to make the activity full screen:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
Layout:
<RelativeLayout xmlns:android=".."
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:layout_alignParentTop="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/toolbar_background">
<include layout="@layout/layout_toolbar" />
</android.support.design.widget.AppBarLayout>
<ScrollView.......>
<RelativeLayout......>
<EditText....><!--There are multiple EditTexts here.-->
</RelativeLayout>
Upvotes: 0
Views: 313
Reputation: 1696
You can use a CollapsingToolBarLayout if it fits your UI requirement inside of the AppBarLayout.
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ripple="http://schemas.android.com/apk/res-auto"
android:id="@+id/tv_toolbar"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#fff"
ripple:contentInsetStart="0dp">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
Upvotes: 0
Reputation: 583
Add this line in menifests for Activity
android:windowSoftInputMode="adjustResize"
Upvotes: 1
Reputation: 1126
add android:fitsSystemWindows="true"
in your toolbar's root layout
Most of the time, your app won’t need to draw under the status bar or the navigation bar, but if you do: you need to make sure interactive elements (like buttons) aren’t hidden underneath them. That’s what the default behavior of the android:fitsSystemWindows="true" attribute gives you: it sets the padding of the View to ensure the contents don’t overlay the system windows.
A few things to keep in mind:
fitsSystemWindows is applied depth first — ordering matters: it’s the first View that consumes the insets that makes a difference
from https://medium.com/androiddevelopers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec
basically you're telling the toolbar not to move & stay on top & instead move the views underneath it upwards below it
Upvotes: 0