我已经看到关于如何实现这一点的订单线程,但我找到的解决方案并没有真正解决问题。
当我使用它时:
<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);
}