【发布时间】:2017-07-04 20:45:47
【问题描述】:
问题已经被问到here。但是没有满意的答案,所以我再问一次。
我有一个可滚动的用户注册表单,屏幕底部有一个固定的注册按钮。而且我只需要在底部显示注册按钮,即它不应该是可滚动的。我正在使用 RelativeLayout 作为根容器。
我的视图层次结构是:
如果是 android:windowSoftInputMode="adjustNothing"
当我点击我的任何 EditText 时,会出现软键盘,但滚动视图不能完全滚动。相当于键盘的空间在键盘后面消失了。我想让它可以滚动。
如果是 android:windowSoftInputMode="adjustPan"
它工作得更好一点,但不完全是我想要的方式。它会将我的整个屏幕向上推,包括不需要的工具栏。
如果是 android:windowSoftInputMode="adjustResize"
它向上推动我的按钮,这根本不需要。
所以,请给我建议一个解决方案,我可以用它来满足我的要求。
这是我的 xml 代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
tools:context=".activities.CreateAccountActivity">
<include
android:id="@+id/toolbar"
layout="@layout/app_toolbar" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar"
android:fillViewport="true"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"><!--android:paddingBottom="@dimen/activity_vertical_margin"-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/ll_fields"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
android:id="@+id/et_first_name"
style="@style/create_account_edittext"
android:hint="@string/first_name" />
<EditText
android:id="@+id/et_last_name"
style="@style/create_account_edittext"
android:hint="@string/last_name" />
<EditText
android:id="@+id/et_dob"
style="@style/create_account_edittext"
android:hint="@string/date_of_birth" />
<EditText
android:id="@+id/et_email"
style="@style/create_account_edittext"
android:hint="@string/email"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/et_password"
style="@style/create_account_edittext"
android:hint="@string/password"
android:inputType="textPassword" />
<EditText
android:id="@+id/et_confirm_password"
style="@style/create_account_edittext"
android:hint="@string/confirm_password"
android:inputType="textPassword" />
<LinearLayout
android:id="@+id/ll_terms"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/separator_margin"
android:background="@color/et_create_account_bg"
android:orientation="horizontal"
android:padding="10dp">
<CheckBox
android:id="@+id/cb_terms"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/BrandedCheckbox" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="@string/accept_terms"
android:textColor="@color/white"
app:font="@string/font_helvetica_normal" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_subscription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/et_create_account_bg"
android:orientation="horizontal"
android:padding="10dp">
<CheckBox
android:id="@+id/cb_subscription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/BrandedCheckbox" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:gravity="center_vertical"
android:text="@string/subscription_details"
android:textColor="@color/white"
app:font="@string/font_helvetica_normal" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/btn_create_account"
style="@style/buttonStyle"
android:layout_alignParentBottom="true"
android:text="@string/create_account" />
</RelativeLayout>
</ScrollView>
我的清单是:
<activity
android:name=".activities.CreateAccountActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar" />
【问题讨论】:
标签: android android-scrollview android-relativelayout