在edittext中打开键盘时Android滚动视图不起作用

时间:2021-01-19 05:21:06

标签: android android-layout kotlin android-constraintlayout android-scrollview

我有这样的布局

<?xml version="1.0" encoding="utf-8"?>
<layout 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">

    <data>

        <variable
            name="viewModel"
            type="com.package.ui.dashboard.package.PackageViewModel" />
    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/ic_splash_frame">

        <RelativeLayout
            android:id="@+id/rl_toolbar"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dimen_80dp"
            android:background="@drawable/ic_banner"
            android:orientation="horizontal"
            app:layout_constraintTop_toTopOf="parent">

            <include
                android:id="@+id/toolBar"
                layout="@layout/layout_toolbar_gratitude"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:layout_alignParentBottom="true"
                android:layout_marginTop="@dimen/dimen_20dp" />
        </RelativeLayout>

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/rl_toolbar">

            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <androidx.constraintlayout.widget.Guideline
                    android:id="@+id/guideline9"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    app:layout_constraintGuide_begin="20dp" />

                <androidx.constraintlayout.widget.Guideline
                    android:id="@+id/guideline10"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    app:layout_constraintGuide_end="20dp" />

                <TextView
                    android:id="@+id/tv_date"
                    style="@style/ButtonTextDateYellow.Medium.TrajonPro"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/dimen_10dp"
                    android:text="Jan 4, 2021"
                    app:layout_constraintBottom_toBottomOf="@+id/iv_camera"
                    app:layout_constraintEnd_toEndOf="@+id/guideline10"
                    app:layout_constraintEnd_toStartOf="@+id/iv_camera"
                    app:layout_constraintStart_toStartOf="@+id/guideline9"
                    app:layout_constraintTop_toTopOf="@+id/iv_camera" />

                <ImageView
                    android:id="@+id/iv_camera"
                    android:layout_width="@dimen/dimen_35dp"
                    android:layout_height="@dimen/dimen_35dp"
                    android:layout_marginTop="@dimen/dimen_10dp"
                    app:layout_constraintEnd_toEndOf="@+id/guideline10"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@drawable/ic_camera" />

                <ImageView
                    android:id="@+id/iv_selected"
                    android:layout_width="@dimen/dimen_0dp"
                    android:layout_height="@dimen/dimen_300dp"
                    android:layout_margin="@dimen/dimen_10dp"
                    android:adjustViewBounds="true"
                    android:scaleType="centerCrop"
                    android:visibility="visible"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/iv_camera" />

                <EditText
                    android:id="@+id/et_text"
                    style="@style/ButtonTextBlack.Medium.PlataninoRoman"
                    android:layout_width="@dimen/dimen_0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/dimen_20dp"
                    android:background="@android:color/transparent"
                    android:gravity="top"
                    app:layout_constraintEnd_toEndOf="@+id/guideline10"
                    app:layout_constraintStart_toStartOf="@+id/guideline9"
                    app:layout_constraintTop_toBottomOf="@+id/iv_selected" />


            </androidx.constraintlayout.widget.ConstraintLayout>

        </ScrollView>
    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

我已经尝试过,android:fitsSystemWindows="true" android:fillViewport="true" 在 scrollView 中,它没有用。我也试过 android:windowSoftInputMode="adjustResize|stateHidden 但这也不起作用。

在 onCreate 我有这个

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        window.apply {
            clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
            addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                decorView.systemUiVisibility =
                    View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
            } else {
                decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            }
            statusBarColor = Color.TRANSPARENT
        }
    }
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.cl_main)) { _, insets ->
            findViewById<Toolbar>(R.id.toolBar).setMarginTop(insets.systemWindowInsetTop)
            insets.consumeSystemWindowInsets()
        }

所以我需要让屏幕保持原样,我还需要让 scrollView 正常工作,但它没有发生。如果我删除 onCreate 中的代码,它可以工作,但我需要按原样使用工具栏。那么有没有其他方法可以使 scrollView 工作。任何帮助将不胜感激,谢谢。

0 个答案:

没有答案
相关问题