我正在设计一个简单的登录活动。我使用了以下xml布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:layout_gravity="center_vertical|center_horizontal"
android:gravity="center_vertical|center_horizontal"
android:layout_margin="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My application title"
android:textSize="30sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:orientation="vertical"
android:layout_gravity="center_vertical|center_horizontal"
android:gravity="center_vertical"
android:layout_margin="15dp">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:layout_marginTop="15dp"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="Login"/>
</LinearLayout>
</LinearLayout>
我已经获得了这个结果:
但如果焦点在第一个EditText上,我得到了这个:
如果焦点在第二个EdiText上,结果就是下面的结果:
考虑到我在Manifest中使用了以下行,我的活动是:
android:windowSoftInputMode="adjustPan|adjustResize"
我希望当虚拟键盘出现时,两个edittext,按钮和textview都可见,并在可用屏幕中正确居中。 我的代码需要改变什么?
注意:我的结果相同如果删除清单中的行:
android:windowSoftInputMode="adjustPan|adjustResize"
答案 0 :(得分:1)
您可以将父LinearLayout替换为ScrollView:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout ...>
....
....
</LinearLayout>
</ScrollView>
尝试这个,它适用于我的一些apk!
编辑:抱歉没有看到关于文本自动中心,所以有了这个你可以手动调整您的editext到中心用手指滑动..希望这将有所帮助