据我所知,没有开箱即用的解决方案。但是在Android中,您几乎可以做所有事情,但可以自己动手或搜索某些第三方库。
例如:
- 创建包含2个孩子的FrameLayout(一个孩子是带有标签和按钮的线性布局,其他孩子是搜索视图,您可以尝试使用标准版SearchView或创建自己的孩子或使用this)
- 使用子项TabLayout和2个ImageViews创建LinearLayout(一个用于搜索,一个用于菜单)。
- 然后你需要为两个ImageView添加涟漪效果并为每个提供图标(你可以在Material Design Icons中找到它们)
- 然后您需要使用我们的选项菜单
提供apearing Popup Menu
- 然后你需要提供点击搜索按钮和淡化标签的动画以及出现的搜索视图(只需隐藏框架布局的第一个孩子并显示第二个)。
我知道,这似乎很奇怪。但是当你想要一些不平常的东西时,你经常需要自己做很多事情(或者搜索一些图书馆)
,您可以尝试使用小型黑客作为更快速的解决方案。假设您需要112 dp的两个图标(搜索,溢出),那么您可以:
- 带有2个孩子的FrameLayout:第一个孩子是工具栏,宽度为match_parent,没有标题,没有背面或汉堡图标,只有菜单;第二个子TabLayout,宽度为match_parent - 112dp
- 因此,你会有tablayout的可触摸区域,除了右边的小区域,你可以有可触摸的菜单区域
因此,对于用户而言,所有内容都会在您的屏幕截图中显示,并且您需要使用的代码少于第一个版本