约束布局和adjustpan scrollview中的Edittext多线不可行

时间:2016-12-04 04:47:33

标签: android android-fragments android-edittext

我在EditText fragment中使用constraintsLayout,但是当我输入超过屏幕长度的更多行时,editText不会向上移动。

我尝试设置" windowSoftInputMode"到" adjustPan"和" adjustResize",尝试设置" isScrollContainer"真假。

我尝试使用scrollview并将EditText设为其子级。但都有同样的问题。

我的活动不是全屏。

以下代码是我的manifest

<activity
        android:name=".MainActivity"
        android:screenOrientation="userPortrait"
        android:windowSoftInputMode="stateVisible|adjustPan">

以下代码是我的布局,它处于约束布局中。

<EditText
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:inputType="textCapSentences|textAutoCorrect|textMultiLine|textWebEditText"
        android:ems="10"
        android:id="@+id/editText"
        android:imeOptions="actionSend"
        android:scrollHorizontally="false"
        android:saveEnabled="true"
        android:scrollbars="vertical"
        app:layout_constraintTop_toBottomOf="@+id/textView"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginTop="32dp"
        app:layout_constraintHorizontal_bias="0.0"
        android:isScrollContainer="false"
        android:scrollbarAlwaysDrawVerticalTrack="true"
        android:hint="@string/writeYourPostHere"/>

在输入任何内容之前,这是我片段的外观。 appearance of my fragment before typing anything

当我输入20行单词时,这是我片段的外观&#34;测试&#34;使用&#34;行号&#34;,它没有向上移动,剩下的单词(测试18,测试19,测试20)被隐藏,即使我仍在键入单词&#34; Testing 20&#34;。我希望它向上移动并显示我输入的最后一个单词。

enter image description here

我已经在以下链接中阅读了答案,但它们看起来都是一样的,无法解决我的问题。

EditText, adjustPan, ScrollView issue in android

adjustPan not preventing keyboard from covering EditText

Forcing adjustPan in activity containing ScrollView

Android EditText Multiline with SoftInputMode adjustPan

How to avoid soft keyboard pushing up my layout?

Soft keyboard hides parts of fullscreen webview

Android adjustPan is being ignored

1 个答案:

答案 0 :(得分:1)

我使用以下方法找到答案。

1)将scrollview放在constraintslayout之外,之前我只使用scrollviewedittext作为唯一的孩子。

<ScrollView>
    <ConstraintsLayout>
        <EditText>
        </>
    </>
</>

2)对于editText,设置为

android:imeOptions="flagNoExtractUi"

3)最后,我将此代码放在onCreateView的{​​{1}}处。

fragment