当前位置: 首页 > 知识库问答 >
问题:

点击ViewPager的编辑文本时软键盘保持关闭

陈誉
2023-03-14

我有一个片段,其中包含一个ViewPager2的2个fragemnt。在第二个子片段中,我有一个回收器视图,其视图保持器包含 TextView 和 EditText。

在模拟器中,当我点击编辑视图时,软键盘一直关闭。

在真实设备(索尼xperia XA)中,软键盘没有关闭,但它总是关注第一个编辑文本,无论我是否在另一个编辑文本中单击

我曾尝试使用android:WindowsOfInputMode=“adjustPan”和android:WindowsofInputMode=“adjustResize”,但没有解决问题。

我在LinearLayout外部使用数据绑定和ConstraintLayout

<LinearLayout
    android:id="@+id/wrapper"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/margin"
    android:focusable="true"
    android:focusableInTouchMode="true"
    tools:context="vn.com.ntn.obee.screens.fragments.exercise.InputQuestionFragment">

    <androidx.cardview.widget.CardView
        android:id="@+id/cardView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/margin_medium"
        android:layout_marginEnd="@dimen/margin_medium"
        android:layout_marginBottom="@dimen/margin_medium"
        android:paddingTop="@dimen/margin"
        android:paddingBottom="@dimen/margin_medium"
        app:cardCornerRadius="20dp"
        app:cardElevation="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/layoutQuestion"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/question_drawable"
            android:orientation="vertical"
            android:paddingTop="@dimen/margin"
            android:paddingBottom="@dimen/margin"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent">

            <vn.com.ntn.obee.screens.views.SelectableTextView
                android:id="@+id/tvQuestion"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:lineSpacingMultiplier="1.6"
                android:maxHeight="200dp"
                android:paddingStart="@dimen/margin_medium"
                android:paddingEnd="@dimen/margin_medium"
                android:paddingTop="@dimen/margin"
                android:paddingBottom="@dimen/margin_medium"
                android:scrollbars="vertical"
                android:fontFamily="@font/proxima_nova_bold"
                android:textColor="@color/white"
                android:textSize="@dimen/text_size_normal"
                app:htmlText="@{answer.content ?? answerResult.contentExtend}"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <EditText
                android:id="@+id/etAnswer"
                android:layout_width="match_parent"
                android:layout_height="@dimen/size_icon_x5"
                android:hint="@string/enter_your_answer_here"
                android:paddingStart="@dimen/margin_medium"
                android:paddingEnd="@dimen/margin_medium"
                android:paddingBottom="2dp"
                android:layout_marginStart="@dimen/margin_medium"
                android:layout_marginEnd="@dimen/margin_medium"
                android:layout_marginBottom="@dimen/margin_small"
                android:background="@drawable/bg_input_question_edittext"
                android:fontFamily="@font/proxima_nova_bold"
                android:textColor="@color/pink"
                android:textColorHint="#FFC9C9"
                android:textSize="@dimen/text_size_medium"
                android:singleLine="true"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/tvQuestion"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintVertical_bias="1"/>
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.cardview.widget.CardView>

</LinearLayout>

我认为这些日志可能有我发现的问题:

2020-10-12 00:20:43.527 3051-3051/? I/KeyboardViewUtil: KeyboardViewUtil.getKeyboardHeightRatio():128 systemKeyboardHeightRatio:1.000000; userKeyboardHeightRatio:1.000000.
2020-10-12 00:20:43.528 3051-3051/? I/AndroidIME: AbstractIme.onActivate():83 LatinIme.onActivate() : EditorInfo = Package = com.nghianguyen.obee_android.debug : Type = Text : Learning = Enable : Suggestion = Show : AutoCorrection = Enable : Microphone = Show : NoPersonalizedLearning = Disable, IncognitoMode = false
2020-10-12 00:20:43.529 3051-3051/? I/Delight5Facilitator: Delight5Facilitator.initializeForIme():572 initializeForIme() : Locale = [en_US], layout = qwerty
2020-10-12 00:20:43.529 3051-3051/? I/VoiceInputManagerWrapper: VoiceInputManagerWrapper.cancelShutdown():54 cancelShutdown()
2020-10-12 00:20:43.529 3051-3051/? I/VoiceInputManagerWrapper: VoiceInputManagerWrapper.syncLanguagePacks():66 syncLanguagePacks()
2020-10-12 00:20:43.557 3051-6376/? I/SpeechFactory: SpeechRecognitionFactory.maybeScheduleAutoPackDownloadForFallback():155 maybeScheduleAutoPackDownloadForFallback()
2020-10-12 00:20:43.569 1845-1845/? E/servicemanager: Could not find android.hardware.power.IPower/default in the VINTF manifest.
2020-10-12 00:20:43.596 3051-3051/? I/KeyboardWrapper: KeyboardWrapper.consumeEvent():264 Skip consuming an event as current keyboard is deactivated (state=0, keyboard existence=true)
2020-10-12 00:20:43.669 3051-3051/? W/KeyboardModeManager: KeyboardModeManager.setInputView():359 setInputView() : inputView = com.google.android.apps.inputmethod.libs.framework.core.InputView{cb5f35e V.E...... ......ID 0,0-1080,2022}
2020-10-12 00:20:43.672 3051-3051/? I/ConversationToQueryExtension: ConversationToQueryExtension.isEnabledForHostApp():254 Conv2Query not enabled due to current app [com.nghianguyen.obee_android.debug] not in whitelist
2020-10-12 00:20:43.672 3051-3051/? I/ConversationToQueryExtension: ConversationToQueryExtension.onActivate():165 onActivate() : Disabled by unsupported host app
   

共有1个答案

郏稳
2023-03-14

问题是我使用了太多的约束布局。我将约束布局用于:

  • ViewPager的子片段
  • 回收器视图的项目

我将片段的布局改为LinearLayout

注意:使用NestedScrollView包装回收器视图可以解决我的问题,但它阻止我滚动回收器视图

 类似资料:
  • 我正在尝试调整图像按钮正下方的软键盘,但它覆盖了图像按钮,使其无法单击。当用户单击编辑文本时,我希望按钮位于软键盘的正上方。我尝试过使用,但它似乎不起作用。 下面是我的布局。xml文件 在AndroidManifest中。我拥有的xml文件

  • 我有一个编辑文本,我想自己处理输入,所以我不想在我点击它时(或者当选择改变、焦点改变、长时间点击等)软键盘出现。但是,我仍然希望能够选择文本、更改光标位置、复制/过去等。 我曾尝试将Android系统:windowSoftInputMode=“stateAllwayshidden”放入清单中,但似乎效果不大。我还尝试添加以下内容 这会禁用键盘,但也会阻止光标工作。 目前,我基本上是在尝试为键盘可能

  • 我有一个布局,其中包含RelativeLayout作为根布局,相对布局在顶部包含ListView,在相对布局的底部包含一个Edittext align。在Lollipop前版本的设备中,每当软键盘打开Edittext时,我就可以看到Edittext。但在Lollipop软键盘中隐藏了编辑文本。我已经在清单文件中设置了android:WindowsOfInputMode=“adjustPan|adj

  • 当软键盘弹出时,我需要在键盘和编辑文本之间提供一些填充,这通常会隐藏编辑文本的底部。 打开软键盘时,我需要完整的edittext视图可见。更重要的是,我不能使用<code>android:WindowsOfInputMode=“adjustResize”,这在我的用例中效果不佳。我正在使用“adjustPan”。 那么如何在不改变windowSoftInputMode的情况下实现相同呢?

  • 这是我的简单观点: 我想要2个条件:1]一旦我开始输入我的编辑文本,键盘应该在下面的特定编辑文本2]标题栏应该保持固定在那个位置。 我在manifest中使用了Android:WindowsoftinPutmode=“adjustpan”来实现第一个条件,但同时没有实现第二个条件。其次,使用Android:windowsoftinputmode=“adjustrestsize”可以实现2个条件,但

  • 我在做计算器。所以我制作了自己的带有数字和函数的