我们的应用主要内容是由CardView的RecyclerView组成的。为了注册,我们需要更多的信息来创建一个账户,因此我们决定使用CardView来匹配用户注册后的体验。
为此,我有一个单一的Activity,它会从底部动画地显示片段,并从顶部退出现有的片段,以模拟滚动。当用户输入数据并点击“下一步”时,这种虚假的滚动发生。这个方法效果不错,但有一个问题。当我们有一个用于输入的EditText时,键盘弹出并覆盖屏幕底部的“下一步”按钮。
在用户测试中,我们注意到有很高的比例的用户试图向上滚动卡片以达到下一步按钮,而不是关闭键盘。
我花费了很多时间尝试使CardView向上滚动以显示按钮,但没有成功,现在正在寻找新的解决方案。
注册Activity布局仅包含一个FrameLayout,我将Fragment加载到其中。每个被加载的Fragment都有一个CardView作为根布局。
在清单文件中,我将Activity的windowsSoftInputMode设置为adjustResize、adjustPan,但效果不佳。
activity_signup.xml
当我试图将CardView放入ScrollView中并使用fillViewport true的cardview布局时,我得到了一个滚动条,但是卡片不会滚动,而且cardview布局也会混乱。
有人对windowSoftInputMode非常了解,能否指点我正确的方向?或者CardView只能在设计用于容纳它们的容器内滚动?
感觉解决这个问题的方法是操作活动视图而不是片段。
为此,我有一个单一的Activity,它会从底部动画地显示片段,并从顶部退出现有的片段,以模拟滚动。当用户输入数据并点击“下一步”时,这种虚假的滚动发生。这个方法效果不错,但有一个问题。当我们有一个用于输入的EditText时,键盘弹出并覆盖屏幕底部的“下一步”按钮。
在用户测试中,我们注意到有很高的比例的用户试图向上滚动卡片以达到下一步按钮,而不是关闭键盘。
我花费了很多时间尝试使CardView向上滚动以显示按钮,但没有成功,现在正在寻找新的解决方案。
注册Activity布局仅包含一个FrameLayout,我将Fragment加载到其中。每个被加载的Fragment都有一个CardView作为根布局。
在清单文件中,我将Activity的windowsSoftInputMode设置为adjustResize、adjustPan,但效果不佳。
activity_signup.xml
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/signUpContent"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
简化的fragment_enter_code.xml
<android.support.v7.widget.CardView
style="@style/CardViewStyle.SignUp"
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="wrap_content"
app:cardCornerRadius="25dp"
app:cardElevation="2dp"
app:cardUseCompatPadding="true"
app:contentPadding="8dp">
<EditText
android:id="@+id/codeEditText"
style="@style/HintedEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Code"
android:inputType="text"/>
<Button
style="@style/NextButton"
android:id="@+id/nextButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:text="@string/next"/>
</android.support.v7.widget.CardView>
当我试图将CardView放入ScrollView中并使用fillViewport true的cardview布局时,我得到了一个滚动条,但是卡片不会滚动,而且cardview布局也会混乱。
有人对windowSoftInputMode非常了解,能否指点我正确的方向?或者CardView只能在设计用于容纳它们的容器内滚动?
感觉解决这个问题的方法是操作活动视图而不是片段。