键盘上方的显示按钮

时间:2014-09-23 06:42:20

标签: android android-layout

我已经制作了一个注册表格,其中我有两个按钮。现在我想要的是,当键盘显示时,底部的两个按钮应该显示在键盘上方而不是隐藏在键盘下面。实现这一点,我写的代码没有给我任何成功。

Xml代码

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

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

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


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


                <EditText
                    android:inputType="textPersonName"
                    style="@style/EditText"
                    android:hint="@string/firstname"
                    android:id="@+id/et_first_name" />


                <EditText
                    android:inputType="textPersonName"
                    style="@style/EditText"
                    android:hint="@string/lastname"
                    android:id="@+id/et_last_name" />

                <Button
                    style="@style/EditText"
                    android:text="@string/country"
                    android:id="@+id/bt_country" />


                <Button
                    style="@style/EditText"
                    android:text="@string/gender"
                    android:id="@+id/bt_gender" />

                <EditText
                    style="@style/EditText"
                    android:inputType="phone"
                    android:hint="@string/mobileno"
                    android:id="@+id/et_mobile_no" />

                <EditText
                    style="@style/EditText"
                    android:inputType="textEmailAddress"
                    android:hint="@string/email"
                    android:id="@+id/et_email" />


            </LinearLayout>


        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <Button
            style="@style/EditText"
            android:id="@+id/bt_reg_cancel"
            android:text="@string/cancel"
            android:layout_gravity="bottom"
            android:layout_weight="1" />

        <Button
            style="@style/EditText"
            android:text="@string/save"
            android:id="@+id/bt_reg_save"
            android:layout_gravity="bottom"
            android:layout_weight="1" />
    </LinearLayout>


</LinearLayout>

请帮忙

2 个答案:

答案 0 :(得分:2)

在Android Manifest中,提供属性android:windowSoftInputMode="adjustResize"。当键盘显示时,这将调整您的布局。

因此,如果某些内容位于底部,则一旦显示

,它就会显示在键盘上方

“请你能告诉我相对布局的代码,这将非常有帮助??? - user3917131 7分钟前”

解决方案: -

  1. )将底部布局放在scrollview本身中。然后即使显示键盘,也可以滚动它。
  2. 2.)重量方法: - ScrollView - &gt; 0.7 RelativeLayout - &gt; 0.3-&gt;在它中写下你的底部布局,并给属性对齐父底部为真。 在这种方法中,根据重量指南,您的滚动视图将仅占用屏幕的0.7,其余部分则由底部布局

    3。)删除scrollview,而不是使其成为linearlayout。制作顶部父亲相对布局,并将属性对齐父母底部为真与底部布局以及上面属性的布局为线性布局

答案 1 :(得分:0)

例如,您应该将ScrollView的leyout_weight设置为1。并将LinearLayout的leyout_height设置为“wrap_content”。将ScrollView的layout_height设置为0dp会很好,所以LinearLayout可以管理它的高度。

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

    <ScrollView
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp">
    </ScrollView>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <Button
            style="@style/EditText"
            android:id="@+id/bt_reg_cancel"
            android:text="@string/cancel"
            android:layout_gravity="bottom"
            android:layout_weight="1" />
        <Button
            style="@style/EditText"
            android:text="@string/save"
            android:id="@+id/bt_reg_save"
            android:layout_gravity="bottom"
            android:layout_weight="1" />
    </LinearLayout>


</LinearLayout>

这应该可以解决问题。