如何在CollapsingToolbarLayout中更改动画的开头?我发现动画是由$(document).ready(function(){
jQuery('#vmap').vectorMap({
map: 'world_en',
backgroundColor: null,
color: '#ffffff',
hoverOpacity: 0.7,
selectedColor: '#666666',
enableZoom: true,
showTooltip: true,
values: sample_data,
scaleColors: ['#C8EEFF', '#006491'],
normalizeFunction: 'polynomial',
onLabelShow: function (event, label, code) {
if(sample_data[code] > 0) {
//console.log(code);
$.getJSON('/ajax/admin/ajaxcallpage', {country_key: code}, function(data) {
//var school_count = 0;
school_count = data;
label.append(': ' + school_count + ' Schools');
});
}
}
});
});
属性控制的。
但是" alpha"动画开始得太快了。我可以以某种方式更改动画属性吗?我想通过高度如此" 200dp"。
例如,如果我要定义app:contentScrim
,我甚至不会看到图片,因为它在开始时已经被动画隐藏了。这是我的xml:
<CollapsingToolbarLayout... layout_height="150dp" >
答案 0 :(得分:2)
我担心解决方案并不容易。
我必须创建自己的CollapsingToolbarLayout来更改原始内容。
在我的情况下,我更改了getScrimTriggerOffset方法
自:
final int getScrimTriggerOffset() {
return 2 * ViewCompat.getMinimumHeight(this);
}
为:
final int getScrimTriggerOffset() {
return 3 * ViewCompat.getMinimumHeight(this);
}
此方法在CollapsingToolbarLayout的第677行中用于确定是否显示或隐藏内容稀松布。
// Show or hide the scrims if needed
if (mContentScrim != null || mStatusBarScrim != null) {
if (getHeight() + verticalOffset < getScrimTriggerOffset() + insetTop) {
showScrim();
} else {
hideScrim();
}
}
我尝试扩展CollapsingToolbarLayout并覆盖此方法,但它被声明为final。
我很抱歉迟到的回复,希望它有效
答案 1 :(得分:0)
示例:
public class MyCollapsingLayout extends CollapsingToolbarLayout {
private int mCurrentVOffset = 0;
private AppBarLayout.OnOffsetChangedListener mListener = null;
...
@Override
public void setScrimsShown(boolean shown) {
boolean show = /*your code */
super.setScrimsShown(show);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
final ViewParent parent = getParent();
if (parent instanceof AppBarLayout) {
mListener = new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
mCurrentVOffset = verticalOffset;
}
};
((AppBarLayout) parent).addOnOffsetChangedListener(mListener);
}
}
@Override
protected void onDetachedFromWindow() {
final ViewParent parent = getParent();
if (mListener != null && parent instanceof AppBarLayout) {
((AppBarLayout) parent).removeOnOffsetChangedListener(mListener);
}
super.onDetachedFromWindow();
}
}
答案 2 :(得分:0)
根据您需要在CollapsingToolbarLayout上调用方法的documentation
setScrimVisibleHeightTrigger(int)
<强> android.support.design:scrimVisibleHeightTrigger 强>
指定用于定义何时的可见高度(以像素为单位) 触发稀松布可视性的变化。
对于支持设计库版本:26.1.0