当弹出软键盘时,如何确保My Activity不会向上移动

时间:2016-10-16 14:42:14

标签: android android-layout

我使用了hello world app并添加了一个编辑文本框,我想保留在底部。 这是我的activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    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="com.example.sarang.hellotext.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />

    <EditText
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:hint="Type Anything"
        android:layout_alignParentBottom="true"
        />
</RelativeLayout>

隐藏软键盘时,活动看起来很好。 但是,当软键盘可见时,它会完全向上移动(即使是标题栏)。

Snapshot with and without soft keyboard

有没有办法避免这种情况?我希望EditText框向上移动,但标题栏和文本视图仍应在顶部可见。

此外,当我为EditText删除 android:layout_alignParentBottom =&#34; true&#34; 时,无论键盘如何,标题和文本视图都会保留其位置。我无法理解为什么?

2 个答案:

答案 0 :(得分:0)

尝试在活动代码

下添加最明显的文件
android:windowSoftInputMode="adjustResize" 

如果它不起作用那么

[B1] = {LEFT(A1,MATCH(1,--ISNUMBER(--MID(A1,ROW(INDIRECT("A1:A"&LEN(A1))),1)),0)-1)}

答案 1 :(得分:0)

我认为在您的活动中添加android:windowSoftInputMode="adjustResize"可能会做到这一点。也就是说,在AndroidManifest.XML文件中,将上面的行放在应用的<activity>内。 我不确定为什么你的问题现在说-1(但我是新来的。)当然,这个问题没有提供很好的见解,但至少它很清楚你在问什么,每个人都必须从某个地方开始。在你的情况下(好吧,每个人都真的)阅读文档。具体到您,请阅读Handling Input Method Visibility,特别是“指定您的UI应如何响应”位。

(啊,我看到有人在我打字的时候提出了类似的建议......对不起重复,)