如何防止键盘在弹出时隐藏布局?我正在使用这行代码在键盘打开时调整布局大小。
Window.SetSoftInputMode(SoftInput.AdjustResize);
结果是,虽然某些设备的屏幕调整大小,但它没有达到我想要的其他设备的程度。例如,这是布局在一台设备上的外观:
以及它在另一台设备上的外观:
在第二张图片中,由于键盘重叠,登录按钮是半可见的。顶部的“登录”文本也会被删除。如何制作它以使所有设备的布局看起来相同?
修改
我的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>
答案 0 :(得分:1)
不要在代码中这样做。在AndroidManifest xml文件中执行此操作。你会在代码中得到奇怪的结果,特别是如果你有对话框。
该模式的作用是强制您的应用调整大小以超越键盘。然而,有些事情只是需要空间。如果您的布局有足够的空白来调整大小,它会。如果它没有,那么键盘仍将覆盖应用程序的一部分。你没有发布你的布局,所以我无法给你一个更详细的答案。