2017-10-05 120 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)