修复了android布局中edittext的位置

时间:2013-08-26 13:43:22

标签: java android android-layout

有人可以解释我,我如何将textviewedittextbutton置于活动中心?

必须如此:

  1. Textview位于下方中心。
  2. EditTextbutton附近(这两个元素位于中心位置)。
  3. 我有我想要的东西,但当我尝试填充edittext时,我有softkeybord,我的活动标题跳到顶部,用户看不到它。

    <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>
    

    普通屏幕http://i41.tinypic.com/13yjyut.png with softkeybord http://i43.tinypic.com/20j1nko.png

1 个答案:

答案 0 :(得分:1)

如果您使用的是LinearLayout,您可以指定重力属性以使子视图居中。

android:layout_gravity="center_horizontal"

如果您使用相对布局作为父布局,则可以使用属性来居中显示子视图。

android:layout_centerHorizontal="true"

请参阅此帮助

Android soft keyboard resize layout

和这个Android开发人员参考

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

将此属性添加到您的活动

 android:windowSoftInputMode="stateVisible|adjustResize" 

并将布局更改为:

 <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>