gpt4 book ai didi

android - 在键盘打开的情况下约束布局滚动到底部

转载 作者:太空宇宙 更新时间:2023-11-03 13:45:07 25 4
gpt4 key购买 nike

我正在使用 ConstraintLayout 来设计一个注册屏幕。我已将 ConstraintLayout 放在 ScrollView 中。即使键盘打开,用户也应该能够滚动并查看全部内容。此功能在我使用 RelativeLayout 时有效,但在我使用 ConstraintLayout 时无效。屏幕底部的 View 被隐藏在键盘后面。以下是我正在使用的布局。

<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:paddingTop="23dp"
android:fillViewport="true"
tools:context="com.givhero.activities.LoginActivity">

<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="bottom"
tools:context="com.givhero.activities.LoginActivity">

<ImageView
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:src="@drawable/back"
android:tint="@color/colorPrimary"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout_editor_absoluteX="0dp"/>
<TextView
android:id="@+id/regEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:paddingLeft="10dp"
android:text="@string/sign_up_email"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/titles_lists"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/back"
tools:layout_editor_absoluteX="0dp"/>

<TextView
android:id="@+id/nameEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="15dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginStart="15dp"
android:layout_marginTop="30dp"
android:background="@android:color/transparent"
android:gravity="left"
android:hint="Name"
android:textColor="@color/dark"
android:textColorHint="@color/dark"
android:textSize="@dimen/base"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/regEmail"
/>

<View
android:id="@+id/nameDivider"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="15dp"
android:background="@color/divider"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/nameEditText"
/>

<EditText
android:id="@+id/emailEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="15dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginStart="15dp"
android:layout_marginTop="30dp"
android:background="@android:color/transparent"
android:gravity="left"
android:hint="Email"
android:inputType="textEmailAddress"
android:textColor="@color/dark"
android:textColorHint="@color/dark"
android:textSize="@dimen/base"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/nameDivider"
/>

<View
android:id="@+id/emailDivider"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="15dp"
android:background="@color/divider"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/emailEditText"/>

<Button
android:id="@+id/submitButton"
android:layout_width="0dp"
android:layout_height="62dp"
android:layout_marginEnd="15dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginStart="15dp"
android:layout_marginTop="30dp"
android:background="@drawable/button_theme"
android:enabled="false"
android:text="@string/sign_up"
android:textColor="#FFFFFF"
android:textSize="@dimen/base"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/emailDivider"
/>

<TextView
android:id="@+id/signUpMessage"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:padding="15dp"
android:text="@string/sign_up_message"
android:textColor="@color/dark80Opacity"
android:textSize="@dimen/medium12"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/submitButton"
/>
</android.support.constraint.ConstraintLayout>
</ScrollView>

我在 list 中添加了以下内容。

<activity android:name=".activities.EmailSignupActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">
</activity>

虽然它没有按预期滚动。以下是屏幕截图,以便更好地理解

enter image description here

如您所见,EditText 字段和注册按钮下方有一些文本。我期望的是,即使键盘打开,用户也应该能够滚动到页面底部以查看该文本。键盘打开时请检查以下屏幕截图

enter image description here

当键盘打开时,我无法 ScrollView 。

编辑嘿,

如果有人遇到这个问题并来到这里寻求答案。我终于找到了解决方案。我无法找出这个问题的确切原因,但可以找出导致布局不滚动的原因。最初,我一直试图占据包括状态栏在内的整个屏幕进行设计,并在oncreate中使用了以下内容

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

上面的行导致了这个问题,一旦我删除它,我就可以滚动布局了。如果我们占据整个屏幕(包括设计状态栏),我很乐意找到布局不滚动的原因。

最佳答案

您必须在 Manifest 文件的 Activity 上设置 windowSoftInputMode

android:windowSoftInputMode="stateVisible|adjustResize"

(或者 android:windowSoftInputMode="stateHidden|adjustResize" 如果你不想在打开 Activity 时显示键盘)

然后让你的 Activity 设计成那样

    <FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">

<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

/* your elements here */

</android.support.constraint.ConstraintLayout>
</android.support.v4.widget.NestedScrollView>
</FrameLayout>

关于android - 在键盘打开的情况下约束布局滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43862804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com