【发布时间】:2016-08-14 14:28:56
【问题描述】:
我有一个多行 EditText 和一个按钮,该按钮会弹出一个持久的底部工作表(模式不会在这里做)。
bottomsheet基本上是一个LinearLayout,变成了appcompat bottomsheet,用
app:layout_behavior="@string/bottom_sheet_behavior"
在 XML 中。
按下按钮会这样显示:
View bottomSheet = context.findViewById(R.id._bottom_sheet);
BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);
behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
现在,我知道这是预期的行为,底部表涵盖了那里的任何内容(我不想使其成为模态,因为 EditText 需要保持其焦点和选择等),但我的问题是:
有没有办法让底部视图调整 EditText 的大小,以便始终显示“整体”?就像显示键盘时一样。
(已编辑:原始问题允许平移,这将隐藏视图的顶部)
或者我最好将其转换为“常规”视图,并通过单击按钮使其“出现”?
感谢您的洞察力。
编辑:我还需要提一下,Bottomsheet 是在主要活动上定义的,而 EditText 是在片段中的 ViewPager 上(这使得调整大小变得不那么简单)
【问题讨论】:
-
将 BottomSheetCallback 设置为 bottomSheet。当带有浮动参数的工作表滑动时,您将收到回调。然后根据幻灯片值翻译您的视图。
-
@mvai 谢谢,这是一个很好的开始,现在我可以弄清楚到底覆盖了多少视图。这也让我意识到我的问题是错误的,平移只会推动事情,我真的需要调整它的大小。仍然不确定如何。 setLayoutparams 可能是一个解决方案...
-
是的,改变布局参数来改变高度。
-
@mvai 一直在摆弄它,发现我正在处理错误的资源。 :) 不管我想在 ViewPager 上调整什么大小,真正改变的是 ViewPager 的大小......
标签: android android-appcompat bottom-sheet