-2

Could anybody explain me, how I can place textview, edittext and button in the center of activity?

Must be so:

  1. Textview in the center below.
  2. EditText and near button (These two elements in the center togehter).

I have what I want, but when I try to fill edittext, I have softkeybord and my Activity title jumps to the top and user can't see it.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                tools:context=".AddList">


    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:id="@+id/input"
            android:gravity="center|center_vertical"
            android:layout_alignParentTop="false"
            android:layout_centerVertical="true">

        <EditText
                android:id="@+id/editText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ems="10"
                android:singleLine="true">

            <requestFocus />
        </EditText>

        <Button
                android:id="@+id/button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0"
                android:text="Add" />
    </LinearLayout>

    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/linearLayout"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="false"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="false"
            android:layout_alignWithParentIfMissing="false"
            android:baselineAligned="false"
            android:gravity="center|center_vertical"
            android:paddingBottom="70dp"
            android:layout_centerInParent="true">

        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="SkleroShop List Name"
                android:id="@+id/textView2"
                android:focusable="false"
                />
    </LinearLayout>


</RelativeLayout>

/NOW/

<?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="fill_parent"
              android:orientation="vertical"
              tools:context=".AddList" >

    <LinearLayout
            android:id="@+id/input1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center|center_vertical" >

        <TextView
                android:id="@+id/txt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:gravity="center"
                android:singleLine="true"
                android:text="Hello" >
        </TextView>
    </LinearLayout>

    <LinearLayout
            android:id="@+id/input"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:orientation="horizontal"
            android:gravity="center_vertical">

        <EditText
                android:id="@+id/editText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ems="10"
                android:singleLine="true" >

            <requestFocus />
        </EditText>

        <Button
                android:id="@+id/button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0"
                android:text="Add" />
    </LinearLayout>

</LinearLayout>

normal screen http://i41.tinypic.com/13yjyut.png with softkeybord http://i43.tinypic.com/20j1nko.png

kbu
  • 11
  • 1
  • 2

1 Answers1

1

If you are using LinearLayout, You may specify, the gravity attribute to center a child view.

android:layout_gravity="center_horizontal"

If you are using Relative Layout as parent layout you may use attribute to center a child view.

android:layout_centerHorizontal="true"

See this for help

Android soft keyboard resize layout

and this Android Developer Reference

http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft

Add this attribute to your activity

 android:windowSoftInputMode="stateVisible|adjustResize" 

and change layout to:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/RelativeLayout1"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:gravity="center_vertical"
     android:orientation="vertical"
     android:paddingBottom="@dimen/activity_vertical_margin"
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:gravity="center|center_vertical"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button1"
    android:layout_alignBottom="@+id/button1"
    android:layout_toLeftOf="@+id/button1"
    android:ems="10" />

<Button
    android:id="@+id/button1"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:onClick="sum"
    android:text="Sum" />

 </RelativeLayout>
Community
  • 1
  • 1
Rachit Mishra
  • 6,101
  • 4
  • 30
  • 51
  • One question...above the center of activity(vertical) works very good! but when i placing elements at the center(vertical) and softkeybord can overlay EditText...Activity title jump to the top again...How fix? – kbu Aug 26 '13 at 14:38
  • works just when items at the top....when item at the vertical center or at the bottom...not works – kbu Aug 26 '13 at 14:43