【问题标题】:How do I prevent the keyboard from making my recyclerview items smaller?如何防止键盘使我的 recyclerview 项目变小?
【发布时间】:2020-05-15 18:19:52
【问题描述】:

所以问题是这样的。乍一看还不错:

但是当我打开我的键盘时,键盘的前两项缩小了一点

这是布局的 XML 代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        card_view:cardBackgroundColor="#EFE8E8"
        card_view:cardCornerRadius="8dp"
        card_view:cardElevation="10dp"
        card_view:cardUseCompatPadding="false">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:orientation="horizontal">

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginLeft="10dp"
                android:layout_weight="1"
                android:text="TextView"
                android:textSize="20sp"
                android:textStyle="bold"></TextView>

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:orientation="vertical">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_marginLeft="10dp"
                    android:layout_weight="1"
                    android:gravity="center_vertical"
                    android:text="TextView" />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_marginLeft="10dp"
                    android:layout_weight="1"
                    android:gravity="center_vertical"
                    android:text="Difficulty" />
            </LinearLayout>

        </LinearLayout>

    </androidx.cardview.widget.CardView>

</LinearLayout>

这是我的活动的 XML 代码,其中显示了 recyclerview:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout 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:orientation="vertical"
        tools:context=".subActivities.CreateWorkoutActivity">

        <androidx.appcompat.widget.Toolbar
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:minHeight="?attr/actionBarSize"
            android:theme="?attr/actionBarTheme" />

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="10dp"
                android:layout_marginTop="48dp"
                android:textSize="18sp"
                android:textStyle="bold"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.075"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <EditText
                android:id="@+id/editText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="36dp"
                android:ems="10"
                android:inputType="textPersonName"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@+id/textView10"
                app:layout_constraintTop_toTopOf="parent" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="68dp"
                android:text="TextView"
                android:textSize="18sp"
                android:textStyle="bold"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/editText" />

            <ScrollView
                android:id="@+id/scrollView3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:maxHeight="220dp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/textView">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">

                    <androidx.recyclerview.widget.RecyclerView
                        android:id="@+id/exerciseRecyclerView"
                        android:layout_width="match_parent"
                        android:layout_height="200dp"
                        android:layout_marginLeft="20dp"
                        android:layout_marginRight="20dp" />
                </LinearLayout>
            </ScrollView>

            <Button
                android:id="@+id/button"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:layout_marginBottom="16dp"
                android:background="@color/colorAccent"
                android:text="Add"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.938"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/floatingActionButton"
                app:layout_constraintVertical_bias="0.737" />

            <com.google.android.material.floatingactionbutton.FloatingActionButton
                android:id="@+id/floatingActionButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:clickable="true"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.498"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/scrollView3"
                app:srcCompat="@drawable/add" />
        </androidx.constraintlayout.widget.ConstraintLayout>


    </LinearLayout>

有没有办法防止这种情况发生?

感谢您的帮助

【问题讨论】:

    标签: android android-studio android-layout


    【解决方案1】:

    在清单中的活动标签中试试这个,添加以下行:

    android:name=".SettingsActivity"
    

    喜欢:

    <activity
      android:windowSoftInputMode="adjustPan"
      android:name=".MyActivity"/>
    

    【讨论】:

    • 它确实解决了打开键盘时按钮改变位置的问题,但现在每次打开键盘时,recyclerview 都会变小。
    • 你期待什么?键盘占用空间。
    • 是的,但我问是否有办法防止这种缩小
    • 对不起,我没有仔细看那些照片。我认为你的布局有问题。发布布局代码。我提供的答案不正确。
    • 你现在可以看一下代码,我已经对我的帖子进行了编辑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多