Android:当 Appcomat 底页显示时调整 EditText 的大小
Android: Resize EditText when Appcomat bottomsheet shows
我有一个多行的 EditText 和一个按钮,该按钮会弹出一个持久的底部 sheet(模态不会在这里做)。
底部sheet基本上是一个LinearLayout,变成了一个appcompat底部sheet,用
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);
现在,我知道这是预期的行为,底部 sheet 覆盖了那里的所有内容(我不想让它成为模态,因为 EditText 需要保留其焦点和选择等) ,但我的问题是:
有没有办法使底部视图调整 EditText 的大小,以便始终显示 "whole"? 就像显示键盘时一样。
(已编辑:原来的问题允许平移,这会隐藏视图的顶部)
还是我最好将它变成 "regular" 视图,然后单击按钮使其成为 "come up"?
感谢您的见解。
Edit:我还需要提一下,Bottomsheet定义在main activity上,而EditText在a中的ViewPager上片段(这使得调整大小变得不那么简单)
原来这个问题并不是真正的问题,而是解决问题的错误方法。有问题的 EditText
本身被放置在 ViewPager
上。调整 Viewpager
本身调整了其中所有内容的大小,并正确调整了 EditText
.
的大小
感谢 m vai 上面的评论指导我找到这个解决方案。
我有一个多行的 EditText 和一个按钮,该按钮会弹出一个持久的底部 sheet(模态不会在这里做)。
底部sheet基本上是一个LinearLayout,变成了一个appcompat底部sheet,用
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);
现在,我知道这是预期的行为,底部 sheet 覆盖了那里的所有内容(我不想让它成为模态,因为 EditText 需要保留其焦点和选择等) ,但我的问题是:
有没有办法使底部视图调整 EditText 的大小,以便始终显示 "whole"? 就像显示键盘时一样。
(已编辑:原来的问题允许平移,这会隐藏视图的顶部)
还是我最好将它变成 "regular" 视图,然后单击按钮使其成为 "come up"?
感谢您的见解。
Edit:我还需要提一下,Bottomsheet定义在main activity上,而EditText在a中的ViewPager上片段(这使得调整大小变得不那么简单)
原来这个问题并不是真正的问题,而是解决问题的错误方法。有问题的 EditText
本身被放置在 ViewPager
上。调整 Viewpager
本身调整了其中所有内容的大小,并正确调整了 EditText
.
感谢 m vai 上面的评论指导我找到这个解决方案。