2017-10-05 97 views
0

我有一个布局是这样的:alignParentBottom与切换能见度

<CoordinatorLayout> 
    <RelativeLayout id="parent"> 
     <LinearLayout id="child1" 
         layout_above="+id/child2"/> 
     <LinearLayout id="child2" 
         gravity="bottom" 
         alignParentBottom="true" 
         visibility="gone"/> 
    <FloatingActionButton/> 
</CoordinatorLayout> 

布局child2(这是默认GONE)具有EditText并在它的Button,垂直对齐。在某些操作中,当焦点位于EditText上时,我想让child2位于键盘的顶部。当这种行为发生时,我将child2的可见性切换为可见,但问题是只有EditText在键盘启动时可见,而不是在其下面的Button

当我从布局中取出visibility=GONE时,它工作正常。整个child2与预期的键盘是固定的,但当我默认它为GONE,并使其在我的动作中可见时,只有EditText在键盘上可见并且整个视图不固定到键盘。我也在Activity中尝试过adjustResize,但那不起作用。任何想法我错过了什么?

+0

我看到了浮动操作按钮的结束标签,但开始标签在哪里? – chornge

+0

@chornge在其标签中声明的FAB ID。我认为这与问题没有关系,因此我将其排除在外。 – Nerd

回答

0

我意识到,我的活动被设置FLAG_FULLSCREEN因其中它忽略windowSoftInputMode的值作为docs说:

窗口标志:隐藏所有的屏幕装饰(如状态栏) 而此窗口显示。这允许窗口自身使用整个显示空间 - 当 这个标记集的应用程序窗口位于顶层时,状态栏将被隐藏。全屏 窗口将忽略 窗口的softInputMode字段的SOFT_INPUT_ADJUST_RESIZE值;该窗口将保持全屏并且将不会调整大小 。

一个相当尴尬的时刻! (facepalm)