我有一个用户输入的片段,当键盘出现时,我的片段屏幕甚至在状态栏和工具栏上方移动。
没有键盘 - https://www.dropbox.com/s/51gygn8z768bkp0/Screenshot_2015-10-01-15-26-37.png?dl=0
使用Keyboad - https://www.dropbox.com/s/z88pegbn7a0qoht/Screenshot_2015-10-01-15-26-44.png?dl=0
此问题的屏幕截图可以在上面的共享图片网址中看到。 我正在尝试将半透明屏幕用于应用程序。
我的活动布局是 -
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--<LinearLayout
android:id="@+id/container_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">-->
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<!-- </LinearLayout>-->
<FrameLayout
android:id="@+id/container_body"
android:layout_width="fill_parent"
android:layout_height="match_parent" />
</LinearLayout>
<fragment
android:id="@+id/fragment_navigation_drawer"
android:name="com.pace.automate.fragment.FragmentDrawer"
android:layout_width="@dimen/nav_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="start"
app:layout="@layout/fragment_navigation_drawer"
tools:layout="@layout/fragment_navigation_drawer" />
我正在使用的主题是
<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:typeface">monospace</item>
</style>
和工具栏就像 -
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
local:popupTheme="@style/ThemeOverlay.AppCompat.Light"
local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
具有属性fitsSystemWindows = true。 但是布局正在向上移动,即使我已经尝试将片段布局放在滚动视图中并在此活动的清单中设置android:windowSoftInputMode =“adjustPan”。但是当键盘出现时仍然屏幕显示它向上推。 我的片段布局就像
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:customAttrs="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp">
<com.pace.automate.Utils.CustomFonts
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:text="Please fill the Details"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#898989"
customAttrs:customFont="regular" />
<EditText
android:id="@+id/amount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
android:background="@android:color/transparent"
android:drawableBottom="@drawable/log_entry_keyline"
android:drawableLeft="@drawable/log_entry_icn_amount"
android:drawablePadding="7dp"
android:ems="10"
android:hint="Amount"
android:inputType="numberDecimal"
android:padding="4dp">
<requestFocus />
</EditText>
<EditText
android:id="@+id/odometer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/amount"
android:layout_marginTop="12dp"
android:background="@android:color/transparent"
android:drawableBottom="@drawable/log_entry_keyline"
android:drawableLeft="@drawable/log_entry_icn_odometer"
android:drawablePadding="7dp"
android:ems="10"
android:hint="Odometer Reading"
android:inputType="number"
android:padding="4dp">
</EditText>
<EditText
android:id="@+id/liters"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/odometer"
android:layout_marginTop="12dp"
android:background="@android:color/transparent"
android:drawableBottom="@drawable/log_entry_keyline"
android:drawableLeft="@drawable/measurement_volume_icon"
android:drawablePadding="7dp"
android:ems="10"
android:hint="Liters"
android:inputType="numberDecimal"
android:padding="4dp" />
<TextView
android:id="@+id/calendar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/liters"
android:layout_marginTop="12dp"
android:drawableBottom="@drawable/log_entry_keyline"
android:drawableLeft="@drawable/log_entry_icn_calendar"
android:drawablePadding="7dp"
android:ems="10"
android:hint="Date"
android:inputType="date"
android:padding="4dp"
android:textSize="16dp" />
<CheckBox
android:id="@+id/fulltank"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/calendar"
android:layout_marginLeft="35dp"
android:layout_marginTop="20dp"
android:button="@drawable/custom_chekbox_fuel_enter"
android:paddingLeft="4dp"
android:text="Full Tank" />
<CheckBox
android:id="@+id/partialtank"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/fulltank"
android:layout_alignBottom="@+id/fulltank"
android:layout_alignParentRight="true"
android:layout_marginRight="35dp"
android:button="@drawable/custom_chekbox_fuel_enter"
android:checked="true"
android:paddingLeft="4dp"
android:text="Partial Tank" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/partialtank"
android:layout_marginTop="12dp">
<com.pace.automate.Utils.CustomAutoComplete
android:id="@+id/tag_station"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/pb_loading_indicator"
android:background="@android:color/transparent"
android:drawableBottom="@drawable/log_entry_keyline"
android:drawableLeft="@drawable/log_entry_icn_tag_station"
android:drawablePadding="7dp"
android:ems="10"
android:hint="Tag your Fuel station"
android:padding="4dp" />
<ProgressBar
android:id="@+id/pb_loading_indicator"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_gravity="center_vertical|right"
android:layout_marginRight="2dp"
android:visibility="gone" />
</RelativeLayout>
</RelativeLayout>
</ScrollView>
<Button
android:id="@+id/saveFuelLogs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginTop="12dp"
android:background="#4cc1bb"
android:text="Save"
android:textColor="#fff"
android:textSize="@dimen/button_text_size" />
</RelativeLayout>
请帮助我,这似乎是我在这里做的非常基本的错误,但无法将其缩短。
Toolbar overlapping below status bar
Fragment overlaps my AppCompat toolbar
尝试了类似的上述建议,但仍未找到解决方案。
还显示了此活动的android:windowSoftInputMode =“adjustPan”。
答案 0 :(得分:0)
如果您的应用程序高于21 api级别,您可以使用以下代码,但您必须首先检测键盘是否显示。
hideStatusBar(true); 隐藏或 hideStatusBar(false); 显示
public static void hideStatusBar(boolean isHide) {
final View decorView = UnationApplication.getInstance().getActivity().getWindow().getDecorView();
final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
if (isHide) {
int flagsMore = flags | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
decorView.setSystemUiVisibility(flagsMore);
} else {
decorView.setSystemUiVisibility(flags);
}
decorView
.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
// decorView.setSystemUiVisibility(flags);
}
}
});
}
答案 1 :(得分:-2)
尝试删除fitSystemWindows =&#34; true&#34;