Android ScrollView,位于软键盘上的操作栏下

时间:2016-03-10 17:57:10

标签: android android-layout android-scrollview

我已经阅读了围绕此问题的几个讨论,当尝试获取LinearLayout的ScrollView以调整键盘时,它与清单文件的android:windowSoftInputMode="stateHidden|adjustResize"(以及adjustPan)有关显示。

我有一个在ScrollView内部包含LinearLayout的布局,其中包含10个LinearLayout部分(TextView / EditText视图)。我已经尝试了我读过的所有组合,无论如何,当单击顶部EditText打开键盘时,视图被调整(平移),使得顶部字段位于操作栏后面。我可以滚动到页面的底部,但是我无法进入顶部的EditText - 我只能滚动到第二个。我可以尝试下拉,我可以开始看到顶级的EditText,但除非我解雇键盘(显然我无法编辑文本),否则无法显示它。

<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"
    tools:context="com.example.myproject.FirstActivity"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/scrollView"
    tools:showIn="@layout/activity_work"
    android:layout_gravity="center_horizontal">

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

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

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="x1"
            android:layout_weight="50"/>

        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:inputType="numberDecimal"
            android:ems="10"
            android:id="@+id/work_one"
            android:hint="0"
            android:gravity="right"
            android:selectAllOnFocus="true"
            android:textAlignment="gravity"
            android:layout_weight="50" />
    </LinearLayout>
    .
    . (9 more of these)
    .
  </LinearLayout>
</ScrollView>

更新:

所以我试过:android:windowSoftInputMode =&#34; adjustResize&#34;和/或android:windowSoftInputMode =&#34; adjustPan&#34;并且软键盘移动操作栏下的顶部字段。

思想?

1 个答案:

答案 0 :(得分:1)

尝试android:windowSoftInputMode =“adjustResize”或android:windowSoftInputMode =“adjustPan”

来自doc

<强> “adjustResize”

活动的主窗口始终调整大小,以便为屏幕上的软键盘腾出空间。

<强> “adjustPan”

活动的主窗口未调整大小以便为软键盘腾出空间。相反,窗口的内容会自动平移,以便键盘不会遮挡当前焦点,用户可以随时看到他们正在键入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能进入并与窗口的模糊部分进行交互。

我复制了this Stack Overflow answer

的答案
相关问题