5

我正在这个登录屏幕中工作,我希望在显示 IME 时调整所有字段、文本和按钮的大小。我已经在 androidManifest.xml 上使用了 android:windowSoftInputMode="adjustResize",但是我仍然在其他元素下面得到了一些元素。

TextView “Cadastre Agora”(id= cadastrar)是否仍然被虚拟键盘覆盖并不重要。但是,我至少希望 EditTexts、它们的 TextViews 和按钮是可见的。

我发现这个悬而未决的问题可能是一个有趣的方法:http://stackoverflow.com/questions/6484024/soft-keyboard-keep-one-view-stationary-while-moving-other

感谢您的帮助!

没有 IME 的屏幕:http: //imageshack.us/photo/my-images/138/semttulo2mr.png/

带有 IME 的屏幕(TextView1 变为隐藏):http: //imageshack.us/photo/my-images/404/semttulo3xw.png/

Stackoverflow 抱怨我的代码格式,所以我在这里上传了 xml 文件:https://rapidshare.com/files/1767398103/login.xml 而且我不能发布超过 2 个链接,这就是我在其中放置空格的原因。

4

1 回答 1

2

在这种情况下,我会说您的初始布局(没有显示键盘)已经有问题。鉴于您正在创建看起来纯粹是登录屏幕的内容,将所有控件放在屏幕的上半部分并在用户访问页面时自动显示键盘是可以接受的。这使用户的体验更快,并且您不必想出灵活的布局。

但是,如果您想尝试使布局在两个视图中都起作用,则需要将间距更改为控件之间的动态。

例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width = "fill_parent"
    android:layout_height = "fill_parent"
    android:orientation="vertical"
    >
    <Space 
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:layout_weight="1">
        <!-- Username Controls here -->
    <Space 
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:layout_weight="1">
        <!-- Password Controls here -->
    <Space 
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:layout_weight="1">
        <!-- Login Button here -->
    <Space 
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:layout_weight="1">
        <!-- TextView here -->
    <Space 
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:layout_weight="1">
</LinearLayout>

为了使其正常工作,必须从控件中删除所有垂直填充,文本框标签之间的填充除外。

于 2012-05-08T06:48:28.287 回答