Ram*_*h K 6 android android-softkeyboard bottom-sheet
我在活动中有以下布局。
<CoordinatorLayout ...>
<ScrollView ...>
<LinearLayout
...
android:orientation="vertical">
<!-- Some stuff -->
<EditText ...>
<!-- Some more stuff -->
<View
android:id="@+id/keyboard_extender"
...>
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/bottom_sheet"
android:orientation="vertical"
...
app:layout_behavior="android...BottomSheetBehavior">
<!-- Even more stuff -->
</LinearLayout>
</CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
我希望键盘不bottom_sheet
应该向上推,但应该向上推keyboard_extender
. 请注意,这bottom_sheet
不是一个,BottomSheetDialog
而只是一个使用android.support.design.widget.BottomSheetBehavior
. 这不能更改为 aBottomSheetDialog
因为我希望屏幕的其余部分与bottom_sheet
我从未将 的可见性设置bottom_sheet
为View.GONE
。我只能从改变其状态BottomSheetBehavior.EXPANDED
,以BottomSheetBehavior.COLLAPSED
和背部。另外,我希望bottom_sheet
只有当键盘不可见时才可见。
由于我需要keyboard_extender
始终在键盘上方,因此我在 AndroidManifest.xml 中设置了android:windowSoftInputMode="adjustResize"
(我认为这是不可避免的)
我有一个方法,当调用它时应该隐藏键盘并显示bottom_sheet
,但我面临的问题是在键盘开始隐藏的同时bottom_sheet
开始动画BottomSheetBehavior.EXPANDED
,当键盘开始隐藏时,屏幕实际上被调整大小因为windowSoftInputMode="adjustResize"
和bottom_sheet
开始从键盘顶部扩展,它不会随着键盘向下移动。因此,当键盘完全隐藏时,bottom_sheet
它实际上位于屏幕中间(刚好高于键盘的高度)。
理想情况下,我希望键盘开始隐藏并同时bottom_sheet
开始扩展,但是bottom_sheet
从屏幕底部而不是键盘顶部开始扩展。
我目前用来克服这个问题的非常hacky 的修复是延迟bottom_sheet
by的扩展SoftInput.KEYBOARD_POPUP_DELAY
,这似乎暂时有效。有没有更清洁的替代品?
归档时间: |
|
查看次数: |
2533 次 |
最近记录: |