我在布局文件中有多个编辑文本,软键盘覆盖了一些编辑文本。如果用户点击第一个编辑文本,我想要整个编辑文本向上滚动,以便所有字段一次都可见。我尝试在xml文件中添加ScroolView,isScrollContainer,orientation:vertical,requestFocus,android:imeOptions =“flagNoFullscreen”,并在Manifest中添加android:windowSoftInputMode =“adjustPan | adjustResize”。但没有得到预期的结果。 这是我的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:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:background="@drawable/register_back"
tools:context="com.example.RegisterActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/registerFieldsRL"
android:layout_marginTop="40dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/header"
android:text="Register"
android:textAllCaps="true"
android:textColor="#646b99"
android:textSize="18dp"
android:gravity="center"
android:layout_centerHorizontal="true" />
<EditText
android:id="@+id/nameET"
android:hint="Enter Your Name"
android:layout_below="@+id/header"
style="@style/editTextStyle"
android:layout_marginTop="10dp"
android:singleLine="true"/>
<EditText
android:id="@+id/emailET"
android:hint="Enter Your Email Id"
android:layout_below="@+id/nameET"
style="@style/editTextStyle"
android:layout_marginTop="5dp"
android:singleLine="true"/>
<EditText
android:id="@+id/mobileET"
android:hint="Enter Your Mobile Number"
android:layout_below="@+id/emailET"
style="@style/editTextStyle"
android:layout_marginTop="5dp"
android:singleLine="true"/>
<EditText
android:id="@+id/passwordET"
android:hint="Enter Password"
android:layout_below="@+id/mobileET"
style="@style/editTextStyle"
android:layout_marginTop="5dp"
android:singleLine="true"/>
<EditText
android:id="@+id/confrm_passwordET"
android:hint="Re-enter Password"
android:layout_below="@+id/passwordET"
style="@style/editTextStyle"
android:layout_marginTop="5dp"
android:singleLine="true"/>
<Button
android:layout_width="200dp"
android:layout_height="40dp"
android:id="@+id/logon_button"
android:text="Logon"
android:gravity="center"
android:layout_centerHorizontal="true"
android:layout_below="@+id/confrm_passwordET"
android:layout_marginTop="7dp"
android:background="#db96a3"
android:textColor="#e8d3c1"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/social_loginsRL"
android:layout_alignParentBottom="true"
android:layout_marginBottom="30dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/social_login_header"
android:text="- OR LOGIN WITH -"
android:layout_centerHorizontal="true"
android:textColor="#646b99"
android:textSize="18dp"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@+id/social_login_header"
android:layout_marginTop="10dp">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/facebook_button"
android:background="@drawable/fbbutton"
android:layout_toLeftOf="@+id/social_login_split_view"/>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:id="@+id/social_login_split_view"></View>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/gmail_button"
android:background="@drawable/gmailbutton"
android:layout_toRightOf="@+id/social_login_split_view" />
</RelativeLayout>
</RelativeLayout>
这是我的样式代码
<style name="editTextStyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@drawable/edittext_background</item>
<item name="android:gravity">center_horizontal</item>
<item name="android:backgroundTint">#e8d3c1</item>
<item name="android:textColor">#646b99</item>
</style>
这是我的Drawable文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/patient_details_et_background"/>
<item>
<shape>
<stroke
android:width="1dp"
android:color="#d4c6c1" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>
答案 0 :(得分:0)
Tara,根据我的理解你的问题,(也许我错了)你希望你的布局中的所有编辑文本都向上滚动并在你收到任何EditText的点击时聚焦?
假设你的布局中有10个EditText,用户点击第一个,如果所有EditText向上滚动,用户点击的项目也会从焦点移动。这对用户来说不太好,因为他们无法在他们点击的实际字段上进行编辑。
至于问题,我想把你所有的EditText放在一个ScrollView中,并在滚动视图上放置一个属性,android:fillViewport =“true”。这不会解决问题,但您可以在预览窗格的滚动视图中查看完整长度和项目。
软关键字一旦弹出就会覆盖屏幕的某些区域,但您应该确保用户可以滚动布局中的每个视图。