我正在此登录屏幕中工作,并且我希望在显示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个链接,这就是为什么我在其中放置空格。
答案 0 :(得分: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>
为了使其正常工作,必须从控件中删除所有垂直填充,但文本框标签之间的填充除外。