键盘显示时向上移动整个屏幕

时间:2016-08-16 10:14:29

标签: android android-layout

我已经看到关于如何实现这一点的订单线程,但我找到的解决方案并没有真正解决问题。

当我使用它时:

<activity
        android:name=".UIComponent.ExampleClass"
        android:screenOrientation="portrait"
        android:theme="@style/AppThemeCustom"
        android:windowSoftInputMode="adjustResize|adjustPan" />

style.xml

<style name="AppThemeCustom" parent="Theme.AppCompat.Light.Dialog">
    <item name="windowNoTitle">false</item>
    <item name="android:windowCloseOnTouchOutside">false</item>
    <item name="android:windowActionBarOverlay">true</item>
</style>

这最终会以我想要的方式实现屏幕,但它也会包裹屏幕。我根本不希望它包装屏幕。它应该将整个屏幕移动到键盘上方而不包裹它。

我如何实现这一目标。

我正在使用这种布局:

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ui_parent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:layout_behavior="@string/bottom_sheet_behavior">

        <android.support.percent.PercentFrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">


            <FrameLayout
                android:id="@id/root_frame"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#eaeaea"
                app:layout_heightPercent="50%"
                app:layout_marginTopPercent="50%" />


        </android.support.percent.PercentFrameLayout>


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

我对onCreate上的活动有这个:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_ui);
    getWindow().setBackgroundDrawableResource(android.R.color.transparent);
    getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    callSessionExtender(getIntent(), true);
}

0 个答案:

没有答案