[英]Crash in AlertDialog builder when android support library updated to 24
[英]Quirk with custom Layout Behavior when updating to Support Library 24
在我從事的最后幾個項目中,我總是對Button有一個自定義布局行為,以模仿顯示Snackbar時FloatingButton制作的動畫。 我使用的代碼是:
public class BehaviorButton extends CoordinatorLayout.Behavior<Button> {
public BehaviorButton(Context context, AttributeSet attrs) {}
@Override
public boolean layoutDependsOn(CoordinatorLayout parent, Button child, View dependency) {
return dependency instanceof Snackbar.SnackbarLayout;
}
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, Button child, View dependency) {
float translationY = Math.min(0, dependency.getTranslationY() - dependency.getHeight());
child.setTranslationY(translationY);
return true;
}
}
然后通過xml將此類“綁定”到Button。
app:layout_behavior=".BehaviorButton"
沒什么特別的。 問題 :當我將支持庫從23.4.0更新到24時,此功能消失了。 我的問題是: 我應該如何在支持庫24中實現這種行為?
在下面的gif中,您可以看到沒有按鈕的情況。 當我添加layout_behavior
它“失去”了它的位置。
您需要檢查依賴項是否為SnackbarLayout
,然后才翻譯按鈕。
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, Button child, View dependency) {
if(dependency instanceof Snackbar.SnackbarLayout){
float translationY = Math.min(0, dependency.getTranslationY() - dependency.getHeight());
child.setTranslationY(translationY);
return true;
}
return false;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.