键盘打开时 ScrollView 没有调整
ScrollView didn't adjust when the Keyboard is open
我创建了一个 activity,里面有一个表格。因为表单很长,所以我使用了一个scrollview.The问题是,当键盘抬起时,滚动视图不会改变。键盘与滚动视图的最后一部分重叠。
我使用了 min Sdk of 16 target of 25.
我一直在为这个问题苦苦挣扎,谁能帮我解决这个问题,在此先感谢。
这是这张图片中的问题
我想成为这样的人(已编辑图片)
我一直在尝试使用此代码更改清单:
android:windowSoftInputMode="stateAlwaysHidden|adjustResize|adjustPan"
我的代码 activity
context.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
这是完整的XML
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_create_new_user"
style="@android:style/Widget.DeviceDefault.Light.ScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:paddingTop="22dp"
android:scrollbarSize="20dp"
tools:context="com.jlmaychinny.app.cashbilis.Ui_Activities.CreateNewUserActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/nav_header_vertical_spacing"
android:paddingLeft="@dimen/nav_header_vertical_spacing"
android:paddingRight="@dimen/nav_header_vertical_spacing"
android:paddingTop="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="Create your account by providing the following."
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<com.jlmaychinny.app.cashbilis.CircleImageView.CircleImageView
android:id="@+id/createnewuser_profile_image"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_gravity="center"
android:src="@drawable/person_icon"
app:civ_border_color="@color/colorPrimaryDark"
app:civ_border_width="5dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Name:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_design"
android:hint="Juan Dela Cruz"
android:inputType="textPersonName"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="State:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_address_state"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_design"
android:hint="Davao Del Sur"
android:inputType="textPostalAddress"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="City:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_address_city"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_design"
android:hint="Davao City"
android:inputType="textPostalAddress"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Home Address:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_address_home"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_design"
android:hint="Blk.16 Pag-asa st.,Brgy. Forever"
android:inputType="textPostalAddress"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Email:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_design"
android:hint="cashBilis@CashBilis.com"
android:inputType="textEmailAddress"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="10">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="8"
android:text="Password:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<ImageButton
android:id="@+id/createnewuser_show_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:background="@android:color/transparent"
android:padding="5dp"
android:src="@drawable/ic_visibility"
tools:ignore="ContentDescription" />
</LinearLayout>
<EditText
android:id="@+id/createnewuser_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="@drawable/edittext_design"
android:hint="************"
android:inputType="textPassword"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_password_confirm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="@drawable/edittext_design"
android:hint="Confirm your password"
android:inputType="textPassword"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/createnewuser_btn"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@drawable/button"
android:text="CREATE USER"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
</LinearLayout>
</ScrollView>
在 activity 的 mainfiest 文件中添加 android:windowSoftInputMode="adjustPan"
并在 tour xml 中使用 edittext 使用
android:singleLine="true"
我认为这是由于您维护了 "adjustResize|adjustPan"。
只需从您的 Androidmainfest.xml 中删除 adjustPan
(例如:android:windowSoftInputMode="stateAlwaysHidden|adjustResize")
并删除 context.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);来自您的 java 文件。
我想这对你有帮助。
您应该尝试在 scrollView 上使用 addOnLayoutChangeListener
,如下所示:
scrollView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
if (bottom < oldBottom) {
scrollView.postDelayed(new Runnable() {
@Override
public void run() {
scrollView.fullScroll(ScrollView.FOCUS_DOWN);
}
}, 100);
}
}
});
我创建了一个 activity,里面有一个表格。因为表单很长,所以我使用了一个scrollview.The问题是,当键盘抬起时,滚动视图不会改变。键盘与滚动视图的最后一部分重叠。
我使用了 min Sdk of 16 target of 25.
我一直在为这个问题苦苦挣扎,谁能帮我解决这个问题,在此先感谢。
这是这张图片中的问题
我想成为这样的人(已编辑图片)
我一直在尝试使用此代码更改清单:
android:windowSoftInputMode="stateAlwaysHidden|adjustResize|adjustPan"
我的代码 activity
context.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
这是完整的XML
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_create_new_user"
style="@android:style/Widget.DeviceDefault.Light.ScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:paddingTop="22dp"
android:scrollbarSize="20dp"
tools:context="com.jlmaychinny.app.cashbilis.Ui_Activities.CreateNewUserActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/nav_header_vertical_spacing"
android:paddingLeft="@dimen/nav_header_vertical_spacing"
android:paddingRight="@dimen/nav_header_vertical_spacing"
android:paddingTop="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="Create your account by providing the following."
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<com.jlmaychinny.app.cashbilis.CircleImageView.CircleImageView
android:id="@+id/createnewuser_profile_image"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_gravity="center"
android:src="@drawable/person_icon"
app:civ_border_color="@color/colorPrimaryDark"
app:civ_border_width="5dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Name:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_design"
android:hint="Juan Dela Cruz"
android:inputType="textPersonName"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="State:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_address_state"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_design"
android:hint="Davao Del Sur"
android:inputType="textPostalAddress"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="City:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_address_city"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_design"
android:hint="Davao City"
android:inputType="textPostalAddress"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Home Address:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_address_home"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_design"
android:hint="Blk.16 Pag-asa st.,Brgy. Forever"
android:inputType="textPostalAddress"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Email:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_design"
android:hint="cashBilis@CashBilis.com"
android:inputType="textEmailAddress"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="10">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="8"
android:text="Password:"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<ImageButton
android:id="@+id/createnewuser_show_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:background="@android:color/transparent"
android:padding="5dp"
android:src="@drawable/ic_visibility"
tools:ignore="ContentDescription" />
</LinearLayout>
<EditText
android:id="@+id/createnewuser_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="@drawable/edittext_design"
android:hint="************"
android:inputType="textPassword"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/createnewuser_password_confirm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="@drawable/edittext_design"
android:hint="Confirm your password"
android:inputType="textPassword"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/createnewuser_btn"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@drawable/button"
android:text="CREATE USER"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
</LinearLayout>
</ScrollView>
在 activity 的 mainfiest 文件中添加 android:windowSoftInputMode="adjustPan" 并在 tour xml 中使用 edittext 使用 android:singleLine="true"
我认为这是由于您维护了 "adjustResize|adjustPan"。
只需从您的 Androidmainfest.xml 中删除 adjustPan (例如:android:windowSoftInputMode="stateAlwaysHidden|adjustResize") 并删除 context.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);来自您的 java 文件。
我想这对你有帮助。
您应该尝试在 scrollView 上使用 addOnLayoutChangeListener
,如下所示:
scrollView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
if (bottom < oldBottom) {
scrollView.postDelayed(new Runnable() {
@Override
public void run() {
scrollView.fullScroll(ScrollView.FOCUS_DOWN);
}
}, 100);
}
}
});