alignParentBottom具有切换可见性

时间:2017-10-05 23:04:31

标签: android relativelayout

我有这样的布局:

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

布局child2(默认情况下为GONE)中包含EditTextButton,垂直对齐。在某些操作后,当焦点位于child2时,我希望EditText位于键盘顶部。当该操作发生时,我将child2的可见性切换为VISIBLE,但问题是当键盘启动时只有EditText可见,而不是Button下方的visibility=GONE

当我从布局中取出child2时,它可以正常工作。整个GONE按预期固定在键盘上,但是当我默认设置EditText并使其在我的操作中可见时,只有adjustResize在键盘上方和整个视图中可见没有固定在键盘上。我也在Activity中尝试了class Tables extends Component{ renderList(data){ return Object.keys(data).map((key, index) => { return( <Table key={ index } group_name={ key } // Hold group_name table_date={ data[key] } /> ); }); } render(){ // In here, we create an object array grouped by group_name. let newGroupArray = this.state.data.reduce((accu, item) => { // Create new grouped object accu[item.group_name] = accu[item.group_name] || []; accu[item.group_name].push(item); return accu; }, {}); return( <section> { this.renderList(newGroupArray) } </section> ); } } ,但这也不起作用。有什么想法我错过了吗?

1 个答案:

答案 0 :(得分:0)

我意识到我的活动设置了FLAG_FULLSCREEN,因为它忽略了docs中所述的windowSoftInputMode的值:

  

窗口标志:隐藏所有屏幕装饰(例如状态栏)   显示此窗口时。这允许窗口使用   整个显示空间为自己 - 状态栏将被隐藏   设置了此标志的应用程序窗口位于顶层。全屏   窗口将忽略SOFT_INPUT_ADJUST_RESIZE的值   window的softInputMode字段;窗口将保持全屏,并将   没有调整大小。

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