如何设置位置:在android中修复?

时间:2013-12-01 23:13:19

标签: android relativelayout

在我的应用中,屏幕中间附近有一个登录名和密码字段。我在清单中有这个

android:windowSoftInputMode="adjustResize|stateHidden"

这样在键盘显示时字段仍然可见。但问题是,有一个底部对齐的textview,当键盘显示时,这个视图与用户名/密码字段下的登录按钮重叠,有没有办法,所以设置textview字段不受影响adjestResize?

感谢。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/credentailsLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background_home"
    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=".ActivityHome" >

    <ImageView
        android:id="@+id/imageLogo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/username"
        android:layout_alignParentTop="true"
        android:layout_marginBottom="50dp"
        android:layout_marginTop="10dp"
        android:scaleType="centerInside"
        android:contentDescription="@+strings/logoimage"
        android:src="@drawable/logo_2_scale" />

    <EditText
        android:id="@+id/username"
        android:layout_width="480dp"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginBottom="10dp"
        android:layout_centerInParent="true"
        android:background="@drawable/bg_edit_text"
        android:gravity="center"
        android:hint="@string/login_username"
        android:inputType="textEmailAddress"
        android:text="@string/DEBUG_login_username"
        android:textColor="#000000" >
    </EditText>

    <EditText
        android:id="@+id/password"
        android:layout_width="480dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/username"
        android:layout_marginBottom="10dp"
        android:layout_centerInParent="true"
        android:background="@drawable/bg_edit_text"
        android:gravity="center"
        android:hint="@string/login_password"
        android:inputType="textPassword"
        android:text="@string/DEBUG_login_password"
        android:textColor="#000000" />

    <Button
        android:id="@+id/logInMode"
        style="@style/loginButtonStyle"
        android:layout_width="480dp"
        android:layout_height="43dp"
        android:layout_below="@+id/password"
        android:layout_centerInParent="true"
        android:background="@drawable/button_selector"
        android:gravity="center"
        android:onClick="ValidateLogin"
        android:text="@string/loginonline" />

    <TextView
        android:id="@+id/advancedMenu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_gravity="bottom"
        android:background="@drawable/advmenu_button_selector"
        android:clickable="true"
        android:gravity="center"
        android:onClick="ShowAdvancedMenu"
        android:paddingBottom="3dp"
        android:paddingLeft="3dp"
        android:paddingRight="3dp"
        android:paddingTop="2dp"
        android:text="@string/advancedmenu"
        android:textColor="#FFFFFF"
        android:textSize="17sp" />
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

编辑:
显然,Android团队成员表示没有直接的方法可以做到这一点。我搜索了Google上的“android check if keyboard键盘是否可见”并得到了以下已回答的问题: How do I Detect if Software Keyboard is Visible on Android Device?

根据链接的答案,您可以通过检查#onMeasure中窗口大小是否更改来间接检测它。见How to check visibility of software keyboard in Android?