令我惊讶的是,如果 Snackbar 跨越多行,它本身似乎会在 TextView 上设置额外的填充。它有效地将 Snackbar 的高度加倍,并且由于某种原因只影响垂直填充。我在SnackbarContentLayout.onMeasure:
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
if (mMaxWidth > 0 && getMeasuredWidth() > mMaxWidth) {
widthMeasureSpec = MeasureSpec.makeMeasureSpec(mMaxWidth, MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
final int multiLineVPadding = getResources().getDimensionPixelSize(
R.dimen.design_snackbar_padding_vertical_2lines);
final int singleLineVPadding = getResources().getDimensionPixelSize(
R.dimen.design_snackbar_padding_vertical);
final boolean isMultiLine = mMessageView.getLayout().getLineCount() > 1;
boolean remeasure = false;
if (isMultiLine && mMaxInlineActionWidth > 0
&& mActionView.getMeasuredWidth() > mMaxInlineActionWidth) {
if (updateViewsWithinLayout(VERTICAL, multiLineVPadding,
multiLineVPadding - singleLineVPadding)) {
remeasure = true;
}
} else {
final int messagePadding = isMultiLine …Run Code Online (Sandbox Code Playgroud) android snackbar android-snackbar material-components material-components-android
我正在使用 Firebase 远程配置,想知道当 Firebase 参数有重叠条件时幕后会发生什么。例如,假设我对参数有两个条件:
如果用户从三星设备查询,Firebase 会为此参数返回什么?据推测,这取决于 Firebase 首先检查哪个条件。这只是冰山一角,它源于 Firebase 不支持and条件表达式的运算符。例如,为了避免重叠,并且只希望三星设备返回 false,我需要为每个可能的 Android 设备创建一个单独的条件,并返回 true ( If Google device: return true, If Huawei: return true, If Motorolla: return true),因为我不能只有一个条件If device is Google OR Huawei OR Motorolla OR ...。
有没有办法至少强制执行 Firebase 远程配置值的检查顺序?