背景
我有一个登录活动,它具有这样的布局(垂直,从上到下):
我需要有这个活动全屏,隐藏状态栏,当软键盘出现时,改变布局为上面所示的#3。
问题所在
这些要求的结合似乎是相当有问题的。
我与他们有两个主要问题:
由于没有办法真正为软键盘显示/隐藏时提供侦听器,所以我不得不创建一个定制布局,只需告诉我何时其大小发生了变化。当它的高度降低时,我假设显示了键盘,反之亦然。
我试过的
当前布局
下面是对当前布局的简短描述:
<LayoutSizeChangedSensorFrameLayout>
<RelativeLayout>
#1
<LinearLayout vertical, aligned to parent-top>
<ImageView/>
<TextView/>
<CirclePageIndicator/>
</LinearLayout>
#2
<ImageView aligned to parent-bottom, and below #1 />
<ViewPager aligned to the ImageView from all sides/>
#3
<LinearLayout vertical, aligned to the parent-bottom>
<TextView/>
<EditText/>
<Button/>
</LinearLayout>
</RelativeLayout>
</LayoutSizeChangedSensorFrameLayout>
这就是这次活动的主题:
<style name="AppTheme.Material" parent="@style/Theme.AppCompat.Light.DarkActionBar">
...
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowTranslucentNavigation" tools:ignore="NewApi">true</item>
<item name="android:windowTranslucentStatus" tools:ignore="NewApi">true</item>
<item name="android:navigationBarColor" tools:ignore="NewApi">@android:color/transparent</item>
</style>
问题是
为什么隐藏状态栏不能持久工作,或者它会影响显示软键盘时显示的内容?
为什么我的定制布局不能感觉到软键盘显示了?
还有其他方法来达到我所尝试过的目标吗?
发布于 2015-08-05 14:09:17
通过执行以下两个步骤,我设法在软键盘显示时将状态栏隐藏起来:
windowFullscreen
设置为true
:不幸的是,这不是一个完整的答案,但它可能会帮助你获得一些方式。
发布于 2019-08-20 11:28:45
除了将FLAG_FULLSCREEN添加到窗口之外,还可以清除FLAG_FORCE_NOT_FULLSCREEN -此标志:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
https://stackoverflow.com/questions/30999110
复制相似问题