Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I position a layout right above the android on-screen keyboard?

See the attached photo. Twitter does it well. They have a layout, which I will call a toolbar for lack of a better term, right above the onscreen keyboard. How can I do this with my code?

enter image description here

UPDATE: Here is my layout:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:background="#ffffff">     <RelativeLayout android:id="@+id/actionbarRelativeLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/actionbar_gradient">         <ImageButton android:id="@+id/imageButton" android:layout_width="wrap_content" android:background="@drawable/stocktwits" android:layout_height="wrap_content"></ImageButton>         <TextView android:layout_width="wrap_content" android:id="@+id/charCountTextView" android:text="140" android:layout_alignParentRight="true" android:layout_height="wrap_content" android:textColor="#ffffff" android:textStyle="bold" android:textSize="18sp" android:gravity="center_vertical" android:layout_centerVertical="true"></TextView>     </RelativeLayout>     <EditText android:layout_width="match_parent" android:id="@+id/composeEditText" android:focusable="true" android:hint="Share an idea with the community" android:gravity="left|top" android:layout_height="fill_parent" android:layout_weight="1"></EditText>     <LinearLayout android:layout_width="match_parent" android:id="@+id/border" android:background="#c4c4c4" android:baselineAligned="false" android:layout_height="1dp"></LinearLayout>     <LinearLayout android:layout_height="wrap_content" android:id="@+id/toolbarLinearLayout" android:orientation="horizontal" android:padding="5dip" android:layout_width="fill_parent" android:background="@drawable/gray_toolbar_gradient">         <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/shortenButton" android:background="@drawable/shortenbutton" android:layout_weight="0"></Button>         <LinearLayout android:layout_height="match_parent" android:layout_width="wrap_content" android:id="@+id/linearLayout1" android:layout_weight="1"></LinearLayout>         <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/twitterCheckBox" android:textColor="#000000" android:layout_weight="0" android:background="@drawable/twittergraybutton"></CheckBox>         <Button android:layout_height="wrap_content" android:layout_weight="0" android:id="@+id/sendButton" android:layout_width="wrap_content" android:background="@drawable/sharebutton"></Button>     </LinearLayout>  </LinearLayout> 

And here is my Manifest where I specify the softInputMode:

<activity android:name="ShareActivity"               android:theme="@android:style/Theme.NoTitleBar"               android:windowSoftInputMode="adjustResize">     </activity> 
like image 537
Sheehan Alam Avatar asked Jun 02 '11 20:06

Sheehan Alam


People also ask

How do you move the layout up when the soft keyboard is shown Android?

Sometimes, you need to change the layout when the soft keyboard appeared on the screen. You can fix this by adding a line of code into the AndroidManifest. xml file within the relevant activity section.

How do I change the position of text in Android Studio?

Use RelativeLayout instead of LinearLayout . There are also many other layouts you can try. Check here for the other type of available layouts. RelativeLayout lets child views specify their position relative to the parent view or to each other (specified by ID).


1 Answers

Make sure your soft input mode is set to adjustResize, then place the layout with your toolbar at the bottom of your activity.

Example:

<LinearLayout android:orientation="vertical"         android:layout_width="match_parent"         android:layout_height="match_parent">     <FrameLayout android:id="@+id/my_content"             android:layout_width="match_parent"             android:layout_height="0dip"             android:layout_weight="1">         <!-- Your content here -->     </FrameLayout>     <LinearLayout android:id="@+id/my_toolbar"             android:layout_width="match_parent"             android:layout_height="wrap_content">         <!-- Your toolbar items here -->     </LinearLayout> </LinearLayout> 
like image 112
adamp Avatar answered Sep 28 '22 08:09

adamp