键盘隐藏了布局组件

时间:2016-07-03 06:12:42

标签: android android-layout keyboard

如何防止键盘在弹出时隐藏布局?我正在使用这行代码在键盘打开时调整布局大小。

Window.SetSoftInputMode(SoftInput.AdjustResize);

结果是,虽然某些设备的屏幕调整大小,但它没有达到我想要的其他设备的程度。例如,这是布局在一台设备上的外观:

enter image description here

以及它在另一台设备上的外观:

enter image description here

在第二张图片中,由于键盘重叠,登录按钮是半可见的。顶部的“登录”文本也会被删除。如何制作它以使所有设备的布局看起来相同?

修改

我的Menifest文件中也有这一行:

<activity android:name=".AccountActivity" android:label="yourtime" android:windowSoftInputMode="adjustResize|stateHidden"></activity>

这是布局的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px"
android:weightSum="100"
android:id="@+id/signinwrapper"
android:background="#F73494">
<LinearLayout
    android:orientation="vertical"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:id="@+id/linearLayout2"
    android:layout_weight="5"
    android:gravity="center">
    <TextView
        android:text="Login"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView1"
        android:textAllCaps="true"
        android:textColor="#FFFF"
        android:textSize="14sp" />
</LinearLayout>
<LinearLayout
    android:paddingTop="20dp"
    android:orientation="horizontal"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="40"
    android:id="@+id/linearLayout1">
    <ImageView
        android:src="@drawable/logo"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/imageView1" />
</LinearLayout>
<LinearLayout
    android:orientation="horizontal"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:id="@+id/linearLayout2"
    android:layout_weight="15"
    android:paddingTop="10dp">
    <TextView
        android:text="Your home of Entertainment"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/textView1"
        android:gravity="center"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:textAllCaps="true"
        android:textColor="#FFFF" />
</LinearLayout>
<LinearLayout
    android:orientation="vertical"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:id="@+id/linearLayout3"
    android:layout_weight="45">
    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:hint="Username"
        android:background="@drawable/editor"
        android:layout_marginLeft="70dp"
        android:layout_marginRight="70dp"
        android:textSize="20dp"
        android:gravity="center"
        android:textStyle="bold"
        android:textColor="#FFFF" />
    <EditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:hint="Password"
        android:background="@drawable/editor"
        android:textSize="20dp"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="70dp"
        android:layout_marginRight="70dp"
        android:gravity="center"
        android:textStyle="bold"
        android:textColor="#FFFF" />
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progressBar"
        android:layout_centerInParent="true"
        android:layout_marginTop="20dp"
        android:background="@drawable/ProgressBarStyle"
        android:layout_gravity="center_horizontal"
        android:visibility="gone" />
    <Button
        android:text="Login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnlogin"
        android:layout_marginLeft="100dp"
        android:layout_marginRight="100dp"
        android:background="@drawable/buttonstyles"
        android:textColor="#F73494"
        android:layout_marginTop="20dp"
        android:textSize="12sp" />
</LinearLayout>

1 个答案:

答案 0 :(得分:1)

不要在代码中这样做。在AndroidManifest xml文件中执行此操作。你会在代码中得到奇怪的结果,特别是如果你有对话框。

该模式的作用是强制您的应用调整大小以超越键盘。然而,有些事情只是需要空间。如果您的布局有足够的空白来调整大小,它会。如果它没有,那么键盘仍将覆盖应用程序的一部分。你没有发布你的布局,所以我无法给你一个更详细的答案。