<activity> windowSoftInoutMode不适用于ViewPager中的片段

时间:2018-03-13 09:31:16

标签: android android-viewpager android-actionbar window-soft-input-mode

我有Activity,其中显示了某个人的详细联系信息。它包含CordinatorLayout(包含标题),ViewPager以及TabLayout

其中一个片段底部包含EditText,它包含在ViewPager中。

我使用以下主题进行此活动。 `

    <style name="ToolbarAppThemeV4WithoutActionBar" parent="ToolbarAppThemeV4">
    <item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
        <item name="colorPrimary">@color/colorPrimaryDesignV4</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:textColorPrimary">@color/color_v4_primary</item>
        <item name="android:actionMenuTextColor">@color/white</item>
        <item name="android:textColorSecondary">@color/color_v4_secondary</item>
        <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
        <item name="alertDialogTheme">@style/Theme.AppCompat.Light.Dialog</item>
        <item name="windowActionModeOverlay">true</item>
        <item name="actionModeBackground">@color/color_multiselectTopBarbackground</item>
        <item name="actionModeCloseDrawable">@drawable/in_ic_back_white</item>
        <item name="actionModeStyle">@style/SomeStyle</item>
        <item name="popupMenuStyle">@style/PopupmenuV4</item>
        <item name="colorAccent">@color/colorPrimaryDesignV4</item>
        <item name="android:windowTranslucentStatus">true</item>
    <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
    </style>

`

我试图使用android:windowSoftInputMode =&#34; adjustPan&#34;和&#34; adjustResize&#34;和所有可能的组合,但它没有正确显示。

请假设ViewPager中显示以下片段屏幕。 实际结果:

enter image description here

预期结果:

enter image description here

任何人都可以帮助我吗?我在manifest中的活动windowSoftInputMode中尝试了所有可能的组合。但没有任何效果。

请注意,如果我在不同的活动中使用相同的片段,它正在工作。试图使用相同的主题,但它不适用于此活动。

是否与ViewPager,Fragment,Cordinator Layout有关?请帮助我。

包含EditText输入字段的XML布局:     `

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/white"
    app:contentInsetLeft="0dp"
    app:contentInsetStart="0dp">

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

        <ImageView
            android:id="@+id/toolbar_back"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="4dp"
            android:layout_marginStart="4dp"
            android:background="?android:attr/actionBarItemBackground"
            android:scaleType="center"
            android:src="@drawable/in_ic_back_red" />

        <TextView
            android:id="@+id/comments_toolbar_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="8dp"
            android:layout_marginStart="8dp"
            android:layout_toEndOf="@+id/toolbar_back"
            android:layout_toRightOf="@+id/toolbar_back"
            android:textColor="@color/colorPrimaryDesignV4"
            android:textSize="@dimen/font_size_text_medium" />

        <View
            style="@style/HorizontalDividerV4"
            android:layout_alignParentBottom="true" />

    </RelativeLayout>

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

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/bottom_bar"
    android:layout_below="@+id/toolbar">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"
        tools:visibility="visible">

        <ProgressBar
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="match_parent"
            android:layout_height="10dp"
            android:indeterminate="true" />

    </RelativeLayout>

    <FrameLayout
        android:id="@+id/master_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white">

        <!--contains loader, error or empty states-->
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">

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

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent" />


        <android.support.design.widget.CoordinatorLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            android:layout_margin="8dp"
            android:orientation="vertical"
            android:padding="3dp"
            android:scaleType="centerInside">

            <RelativeLayout
                android:id="@+id/fab"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_marginBottom="5dp"
                android:layout_marginEnd="5dp"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginStart="5dp"
                android:layout_marginTop="12dp"
                android:background="@drawable/rounded_circle_fab"
                android:elevation="3dp">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:src="@drawable/in_ic_img_down_red_svg" />

            </RelativeLayout>

            <TextView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:layout_gravity="center_horizontal"
                android:background="@drawable/rounded_circle_green"
                android:elevation="3dp"
                android:foregroundGravity="top"
                android:gravity="center"
                android:textColor="@color/white"
                android:textSize="@dimen/font_size_text"
                android:textStyle="bold"
                android:visibility="gone"
                app:layout_anchor="@id/fab"
                app:layout_anchorGravity="top|center_horizontal"
                tools:text="4"
                tools:visibility="visible" />

        </android.support.design.widget.CoordinatorLayout>

    </FrameLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:visibility="gone"
        tools:visibility="visible">

        <ProgressBar
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="match_parent"
            android:layout_height="10dp"
            android:indeterminate="true" />

    </RelativeLayout>

</RelativeLayout>

<FrameLayout
    android:id="@+id/bottom_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@color/white"
    android:paddingTop="6dp">

    <View style="@style/HorizontalDividerV4" />

    <RelativeLayout
        android:id="@+id/actions_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="1dp"
        android:background="@color/white">

        <ViewFlipper
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true">

            <ImageView
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:scaleType="center"/>

            <ImageView
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:scaleType="centerInside"/>

        </ViewFlipper>

        <View
            android:id="@+id/vertical_divider"
            android:layout_width="1dp"
            android:layout_height="36dp"
            android:layout_centerVertical="true"
            android:background="@color/color_divider_v4" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginBottom="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:background="@color/white"
            android:inputType="textMultiLine|textAutoCorrect|textCapSentences"
            android:maxLines="3"
            android:minLines="1" />

        <ViewFlipper
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true">

            <ImageView
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:scaleType="centerInside"/>

            <ImageView
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:scaleType="centerInside" />

        </ViewFlipper>

        <View
            android:layout_width="8dp"
            android:layout_height="8dp"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_circle_green"
            android:visibility="gone"
            tools:visibility="visible" />

    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_marginTop="1dp"
        android:background="@color/light_green_v4_bg"
        android:gravity="center"
        android:visibility="gone"
        tools:visibility="gone">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/color_v4_secondary"
            android:textSize="@dimen/font_size_text"/>

    </LinearLayout>

</FrameLayout>

</RelativeLayout>`

2 个答案:

答案 0 :(得分:1)

android:windowSoftInputMode="adjustPan就是这样工作的。你需要的是android:windowSoftInputMode="adjustResize"

尝试在片段中在运行时设置它并根据需要进行更改。

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

答案 1 :(得分:0)

尝试:

\n