繁体   English   中英

碎片和软键盘布局问题

[英]Fragments and soft keyboard layout issue

我有一个带有ScrollView和Button的片段。 ScrollView包含一些TextView和EditView的LinearLayout。 当我像对应用程序的活动那样显示软键盘时,我希望按钮保持在底部,但随着键盘的使用,按钮会不断上升。 我读过ScrollView可能是造成这种现象的原因,但是如果没有它,就无法访​​问底部的EditViews。

android:isScrollContainer="false"也不起作用,并且将android:layout_above="@+id/button_bar"到ScrollView不适用于Fragments(为什么,我不知道)。 有任何想法吗?

XML布局

<FrameLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="fragment.ProfileFragment">

    <ScrollView
        android:id="@+id/scroll_profile"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="0dp"
        android:fadingEdge="none"
        android:scrollbars="none"
        android:isScrollContainer="false" >

        <RelativeLayout
            android:id="@+id/layout_profile"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="0dp"
            android:orientation="vertical"
            android:padding="0dp">

            <TextView
                android:id="@+id/text_first_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text="@string/first_name"
                android:textStyle="bold" />

            <EditText
                android:id="@+id/edit_first_name"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="top"
                android:imeOptions="actionNext"
                android:lines="1"
                android:padding="5dp"
                android:inputType="text" />

            <TextView
                android:id="@+id/text_last_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text="@string/last_name"
                android:textStyle="bold" />

            <EditText
                android:id="@+id/edit_last_name"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="top"
                android:imeOptions="actionNext"
                android:lines="1"
                android:padding="5dp"
                android:inputType="text" />

            <TextView
                android:id="@+id/text_phone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text="@string/phone_number"
                android:textStyle="bold" />

            <EditText
                android:id="@+id/edit_phone"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="top"
                android:imeOptions="actionNext"
                android:lines="1"
                android:inputType="phone"
                android:padding="5dp" />

            <TextView
                android:id="@+id/text_email"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text="@string/email"
                android:textStyle="bold" />

            <EditText
                android:id="@+id/edit_email"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="top"
                android:imeOptions="actionDone"
                android:lines="1"
                android:padding="5dp"
                android:inputType="textEmailAddress" />

            <TextView
                android:id="@+id/text_help"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text="@string/show_help_texts"
                android:textStyle="bold" />

            <CheckBox
                android:id="@+id/check_help"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="top"
                android:lines="1"
                android:padding="5dp" />

            <TextView
                android:id="@+id/text_code"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:layout_marginTop="20dp"
                android:text="@string/employee_code"
                android:textStyle="bold" />

            <EditText
                android:id="@+id/edit_code"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="top"
                android:hint="@string/employee_code_hint"
                android:imeOptions="actionDone"
                android:lines="1"
                android:padding="5dp"
                android:inputType="textPassword" />
        </RelativeLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/button_bar"
        style="?android:attr/buttonBarStyle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:background="@drawable/button_bar"
        android:layout_gravity="bottom"
        android:layout_marginTop="@dimen/activity_vertical_margin">

        <Button
            style="?android:attr/buttonBarButtonStyle"
            android:id="@+id/button_save"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/button_save"
            android:textColor="@android:color/primary_text_dark" />
    </LinearLayout>
</FrameLayout>

您是否尝试在清单中使用android:windowSoftInputMode="adjustPan"作为活动元素? 我认为这会有所帮助。

如果您想将按钮保留在ScrollView下,我也建议您用垂直LinearLayout替换您的FrameLayout。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM