问题描述
此Snackbar
在我的MainActivity
中使用以下代码可以正常工作:
Snackbar snackbar = Snackbar.make(myLayout,"My snackbar",Snackbar.LENGTH_LONG)
.setBackgroundTint(myColor)
.setTextColor(ContextCompat.getColor(this,R.color.black));
[...]
snackbar.show();
它适用于每个方向上的每个屏幕以及不同的Android版本。仅针对一种配置,它会产生以下错误:设备使用手势导航时。 (很多新手机)
在这种情况下,Snackbar
会在Snackbar
和屏幕底部之间留有间隙,如下所示:
我在网上没有找到任何解释,但我自己发现了。
通过打开开发人员选项中的Show layout bounds
选项,我们可以观察到“经典”导航栏看起来仍然像在这里,就像可见性设置为View.INVISIBLE
一样,我们可以期望{{1 }}的屏幕。
因此,当我尝试显示View.GONE
时,它就显示在此“不可见导航栏”的顶部。
这是一些带有布局边界且带有或不带有手势导航的屏幕(在主菜单中):
这是在不同的手机和品牌(Pixel,三星...)以及仿真器上进行的测试。
是否存在正常行为?如何消除这种差距?
解决方法
对我来说,将admin.auth().deleteUsers([uid1,uid2,uid3])
.then(deleteUsersResult => {
console.log('Successfully deleted ' + deleteUsersResult.successCount + ' users');
console.log('Failed to delete ' + deleteUsersResult.failureCount + ' users');
deleteUsersResult.errors.forEach(err => {
console.log(err.error.toJSON());
});
})
.catch(error => {
console.log('Error deleting users:',error);
});
设置为GestureInsetBottomIgnored
可以解决此问题:
true
来自Android Docs:
根据Android Q及更高版本上的系统手势区域设置此底栏是否应调整其位置。 注意:只有通过滑动将其禁用(因为这会导致手势冲突),启用手势导航并且此fingerInsetBottomIgnored标志为false时,底部栏才会调整其位置。