删除软kayboard和按钮之间的空间

时间:2015-10-14 08:03:45

标签: android android-layout

当软键盘打开时,我使用scrollview滚动我的视图。但它比按钮和键盘之间的空间要大得多。 我们可以删除这个大空间。

这是我的xml代码块。

var input = "This is from the standard input\n";
var i = 0;
var Module = {
  preRun: function() {
    function stdin() {
      if (i < res.length) {
        var code = input.charCodeAt(i);
        ++i;
        return code;
      } else {
        return null;
      }
    }

    var stdoutBuffer = "";
    function stdout(code) {
      if (code === "\n".charCodeAt(0) && stdoutBuffer !== "") {
        console.log(stdoutBuffer);
        stdoutBufer = "";
      } else {
        stdoutBuffer += String.fromCharCode(code);
      }
    }

    var stderrBuffer = "";
    function stderr(code) {
      if (code === "\n".charCodeAt(0) && stderrBuffer !== "") {
        console.log(stderrBuffer);
        stderrBuffer = "";
      } else {
        stderrBuffer += String.fromCharCode(code);
      }
    }

    FS.init(stdin, stdout, stderr);
  }
};

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

要将点击按钮与软件键盘对齐,它应位于布局底部。

您应该在根布局中有单击按钮,该按钮应该具有与底部对齐的单击按钮,使用linearlayouts gravity或relativelayouts layout_alignParentBottom

所以基本上你按如下方式定义布局:

<RelativeLayout>

<Button
android:layout_alignParentBottom="true">
</Button>

</RelativeLayout>

和ta-da!按钮就在软键盘的顶部!

真正的问题..

正如评论中所述,这里的真正问题是只有在键盘可见时才将按钮与键盘对齐,这可以通过两个根据键盘状态切换可视性的按钮来实现

首先我们定义一个有两个按钮的布局,一个用于软件键盘状态,另一个用于&#34;常规&#34;状态

<RelativeLayout>

<ScrollView>
    <LinearLayout>
        <!-- ...... -->


        <Button
        android:id="@+id/regular_button">
        </Button>

    </LinearLayout>
</ScrollView>

<Button
android:id="@+id/keyboard_aligned_button"
android:layout_alignParentBottom="true">
</Button>

</RelativeLayout>

现在我们只是将键盘状态挂钩到按钮的可见性,因此我们需要以某种方式跟踪键盘状态,这在many places

中有解释。

当键盘设置为可见时,常规按钮的setVisibilityGONE,键盘对齐按钮为VISIBLE

键盘消失后,可见性反转