在键盘上向上移动按钮打开Android

时间:2016-07-07 22:16:54

标签: android keyboard android-edittext android-view

我有一个卡片布局,其中包含一个ScrollView,里面有一个Edit,下面是2个按钮。

我遇到的问题是,当我打开键盘并输入文字时,编辑开始展开,按钮隐藏在键盘下方。

我想这样做,以便按钮始终位于键盘上方,就像EditText的底部总是略高于它一样。

我的布局如下:

CardView
   LinearLayout(Vertical)
       ScrollView
           EditText
       ButtonsLayout
           Button
           Button

<android.support.v7.widget.CardView
        android:id="@+id/cv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:clickable="true"
        android:foreground="?android:attr/selectableItemBackground"
        android:visibility="visible"
        app:cardElevation="4dp"
        app:cardUseCompatPadding="true">


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

            <ScrollView
                android:id="@+id/scrollView2"
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                android:layout_above="@+id/buttonsLayout"
                android:fadeScrollbars="false"
                android:layout_weight="1">


                            <EditText
                                android:id="@+id/et_1"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:layout_marginLeft="10dp"
                                android:layout_marginRight="10dp"
                                android:clickable="true"
                                android:ems="10"
                                android:hint="What&apos;s on your mind?"
                                android:inputType="textCapSentences|textMultiLine"
                                android:maxLength="300" />



            </ScrollView>


            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <android.support.design.widget.FloatingActionButton
                    android:id="@+id/fabAttach"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_alignParentTop="true"
                    android:layout_marginBottom="10dp"
                    android:layout_marginLeft="125dp"
                    android:layout_marginStart="125dp"
                    android:clickable="true"
                    android:onClick="onAttachClicked"
                    android:src="@drawable/ic_attach"
                    android:visibility="visible"

                    app:borderWidth="0dp" />


                <android.support.design.widget.FloatingActionButton
                    android:id="@+id/fabPost"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_marginBottom="10dp"
                    android:layout_marginLeft="10dp"
                    android:layout_toEndOf="@+id/fabAttach"
                    android:layout_toRightOf="@+id/fabAttach"
                    android:clickable="true"
                    android:onClick="onPostSquawkClicked"
                    android:src="@drawable/ic_send_white"

                    app:borderWidth="0dp" />


            </RelativeLayout>

        </LinearLayout>


    </android.support.v7.widget.CardView>

非常感谢您的帮助!它真的让我

1 个答案:

答案 0 :(得分:1)

LinearLayout替换为RelativeLayout,将ScrollView与新RelativeLayout的顶部对齐,设置按钮容器的ID(另一个{{1}转到RelativeLayout - 正如buttonsLayout所期望的那样;在相同的按钮容器上 - 将其对齐到父ScrollView的底部并将其高度设置为RelativeLayout):

wrap_content