【问题标题】:Button no hidden to display the keyboard按钮不隐藏以显示键盘
【发布时间】:2015-08-21 21:43:50
【问题描述】:

我在对齐屏幕底部的按钮时遇到问题,此按钮始终保持在该位置,并且我有一个充满屏幕的滚动视图。 scrollView 有 EditText,问题是当我按下 EditText 时,自动必须移动 EditText 并放在键盘上,但在这种情况下,底部的按钮放在键盘上

这是当前显示的方式

as shown

这就是你应该如何显示EditText应该放在键盘上方才能流畅书写,并且不应该显示按钮

as it should be shown

这是我的布局

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:fillViewport="true"
    tools:context=".MainActivity">

    <ScrollView
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:layout_weight="1">

        <LinearLayout
            android:id="@+id/linScroll"
            android:layout_margin="10dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <EditText
                android:id="@+id/txt1"
                android:layout_marginTop="10dp"
                android:hint="1"
                android:layout_width="match_parent"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt2"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="2"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt3"
                android:layout_marginTop="10dp"
                android:hint="3"
                android:layout_width="match_parent"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt4"
                android:layout_marginTop="10dp"
                android:hint="4"
                android:layout_width="match_parent"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt5"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="5"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt6"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="6"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt7"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="7"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt8"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="8"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt9"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="9"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt10"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="10"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt11"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="11"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt12"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="12"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt13"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="13"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt14"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="14"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt15"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="15"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt16"
                android:layout_marginTop="10dp"
                android:hint="16"
                android:layout_width="match_parent"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt17"
                android:layout_marginTop="10dp"
                android:hint="17"
                android:layout_width="match_parent"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt18"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="18"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt19"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:hint="19"
                android:layout_height="40dp" />

            <EditText
                android:id="@+id/txt20"
                android:layout_marginTop="10dp"
                android:hint="20"
                android:layout_width="match_parent"
                android:layout_height="40dp" />

        </LinearLayout>

    </ScrollView>

    <Button
        android:id="@+id/btn"
        android:text="SOY UN BOTON"
        android:layout_width="match_parent"
        android:layout_height="40dp" />

</LinearLayout>

感谢您的帮助

【问题讨论】:

    标签: android button keyboard scrollview android-linearlayout


    【解决方案1】:

    用以下代码替换您的代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <ScrollView
            android:id="@+id/scroll"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:fillViewport="true">
    
            <LinearLayout
                android:id="@+id/linScroll"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:orientation="vertical">
    
                <EditText
                    android:id="@+id/txt1"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="1" />
    
                <EditText
                    android:id="@+id/txt2"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="2" />
    
                <EditText
                    android:id="@+id/txt3"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="3" />
    
                <EditText
                    android:id="@+id/txt4"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="4" />
    
                <EditText
                    android:id="@+id/txt5"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="5" />
    
                <EditText
                    android:id="@+id/txt6"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="6" />
    
                <EditText
                    android:id="@+id/txt7"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="7" />
    
                <EditText
                    android:id="@+id/txt8"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="8" />
    
                <EditText
                    android:id="@+id/txt9"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="9" />
    
                <EditText
                    android:id="@+id/txt10"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="10" />
    
                <EditText
                    android:id="@+id/txt11"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="11" />
    
                <EditText
                    android:id="@+id/txt12"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="12" />
    
                <EditText
                    android:id="@+id/txt13"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="13" />
    
                <EditText
                    android:id="@+id/txt14"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="14" />
    
                <EditText
                    android:id="@+id/txt15"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="15" />
    
                <EditText
                    android:id="@+id/txt16"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="16" />
    
                <EditText
                    android:id="@+id/txt17"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="17" />
    
                <EditText
                    android:id="@+id/txt18"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="18" />
    
                <EditText
                    android:id="@+id/txt19"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="19" />
    
                <EditText
                    android:id="@+id/txt20"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:hint="20" />
    
                <Button
                    android:id="@+id/btn"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:text="SOY UN BOTON" />
            </LinearLayout>
    
        </ScrollView>
    
    
    </LinearLayout>
    

    【讨论】:

      【解决方案2】:

      我要尝试的第一件事是设置按钮的权重并将按钮和滚动视图的高度更改为 0dp,在设置布局比例时(如果您使用权重),您应该避免使用 dp。

      其次,如果您只是想让应用在打开软键盘时不向上推布局(这就是按钮出现在软键盘正上方的原因)设置

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

      在清单中。

      【讨论】:

      • 感谢您的回答,如果我在清单中添加 'android: windowSoftInputMode = "adjustPan"' 确实键盘出现在按钮上,但此错误出现在屏幕顶部:oi61.tinypic.com/2vuyk94.jpg
      • 关闭软键盘后它会自行修复吗?
      • 我能想到的唯一另一件事是代替adjustPan 尝试adjustUnspecified 我不知道这是否可行。如果在您关闭键盘时它会自行修复,这是正常操作。 adjust pan 所做的是将整个布局向上推,以将当前的 EditText 放入视图中。您所看到的是 androids 菜单栏透明的结果。这是输入模式的所有标签的列表 - > developer.android.com/guide/topics/manifest/…(一直在底部)
      • adjustPan 正在尝试向上移动整个布局,因此发生了这种转变 我一直在审查的另一个解决方案是放在清单上 adjustUnspecified 并将滚动移动到某个位置,按下的 EditText 可见
      猜你喜欢
      • 1970-01-01
      • 2012-04-19
      • 2017-01-31
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      相关资源
      最近更新 更多