我使用新的支持库版本23.2
com.android.support:design:23.2.0
在这个版本中,当我调用FloatingActionButton.hide()
方法时,我的FloatingActionButton没有隐藏。
在支持库版本23.1中 - 它完美无缺。 任何人都可以解释一下,问题是什么?
另外,当我使用23.2版本时,Android Studio预览界面会显示一些内部错误
修改
因此,通过断点和调试,我找到了类FloatingActionButtonIcs,它有方法hide(),这个方法应该隐藏FAB视图。但是,我发现,隐藏动画被取消了。为什么?我不知道:(
这是我说的课程。 https://android.googlesource.com/platform/frameworks/support.git/+/master/design/ics/android/support/design/widget/FloatingActionButtonIcs.java?autodive=0%2F%2F%2F%2F%2F还有方法hide()。在匿名动画侦听器触发的方法onAnimationCancel()
屏幕截图
编辑2 是啊! 我发现了问题!但我不明白为什么它不起作用。我在另一个视图上启动另一个ObjectAnimator。这是一些代码段。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scrolling);
final FloatingActionButton mActionToogleMode = (FloatingActionButton) findViewById(R.id.fab);
final EditText editText = (EditText) findViewById(R.id.et);
final ObjectAnimator animator = ObjectAnimator.ofInt(editText, "maxLines", 250);
mActionToogleMode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// WHEN THAT ANIMATION START -- FAB NOT HIDDING
animator.start();
mActionToogleMode.hide(new FloatingActionButton.OnVisibilityChangedListener() {
@Override
public void onHidden(FloatingActionButton fab) {
super.onHidden(fab);
}
});
}
});
}
答案 0 :(得分:0)
在开始动画之前,在FAB上使用clearAnimation()。
答案 1 :(得分:0)
我试图解决这个问题很长一段时间。我发现,我的FAB真的没有隐藏只有支持设计23.2。我没找到为什么。
我刚刚更改了23.1版本的依赖项
和!这对于transitive=true
的某些图书馆来说非常重要,我添加了排除字符串
exclude group: 'com.android.support', module: '*'
我希望在更新版本的支持库中为我修复它。