有些问题在讨论这个问题,但我没有用现有的答案来解决这个问题。
这是我的styles-v21.xml:
<style name="MainTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:colorBackground">#EEEEEE</item>
</style>
我当然为相关活动设置了windowSoftInputMethod =“adjustResize”。
这是我的layout.xml,请注意根FrameLayout用于特定功能,因此需要它:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/rl_background"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--This View is used to fill the space of status bar-->
<View
android:id="@+id/statusbar"
android:layout_width="match_parent"
android:layout_height="@dimen/statusbar_size"/>
<!--I've set this toolbar as Actionbar-->
<android.support.v7.widget.Toolbar
android:id="@+id/actionbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_below="@id/statusbar"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/actionbar">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- Two EditTexts inside -->
</RelativeLayout>
</ScrollView>
</RelativeLayout>
</FrameLayout>
当我没有触摸EditText时,一切看起来都很好:状态栏View保持原样,导航栏不覆盖内容(不要让内容不可见,但内容实际上在其下)。
在类似的问题中,人们经常教我们设置fitsSystemWindow =“true”,我在layout.xml中的不同布局中做了这个,得到了不同的结果。
在:
中设置fitsSystemWindow =“true”1.FrameLayout: AdjustResize有效,但状态栏View现在保持在实际状态栏下方。状态栏的颜色变为windowBackground。导航栏变得完全透明,因为它显示了添加此片段的其他片段内容。
2.First RelativeLayout: AdjustResize有效,但状态栏View低于实际状态栏。导航栏不太透明,无法显示其他片段,但覆盖了内容。
ScrollView中的3&amp; 4.ScrollView&amp; RelativeLayout: AdjustResize不起作用,其他条件与条件2相同。
我还使用了一种方法来编写我自己的FrameLayout:https://stackoverflow.com/a/22266717/3952691但是正如作者所说,设置底部会导致错误。因为我使用半透明导航栏,我还需要绘制底部插图。我尝试升级版本:https://gist.github.com/romannurik/8919163,也没用。
很抱歉无法提供图片,但我真的需要帮助。谢谢!