我想要实现的是类似于CollapsingToolbar的东西。我的活动有以下布局。
var image = new ol.style.Circle({
radius: 10,
fill: new ol.style.Fill({color: 'green'})
});
var styles = {
'Point': new ol.style.Style({
image: image
})
};
var styleFunction = function(feature) {
return styles[feature.getGeometry().getType()];
};
var geojsonObject = {
'type': 'FeatureCollection',
'crs': {
'type': 'name',
'properties': {
'name': 'EPSG:3857'
}
},
'features': [{
'type': 'Feature',
'geometry': {
'type': 'Point',
'coordinates': ol.proj.fromLonLat([2,4])
}
}
]
};
var vectorSource = new ol.source.Vector({
features: (new ol.format.GeoJSON()).readFeatures(geojsonObject)
});
var vector = new ol.layer.Vector({
source: vectorSource,
style: styleFunction
});
var view = new ol.View({
center: [0,0],
zoom: 2,
maxZoom: 17
});
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
, vector
],
target: 'carte',
view: view
});
var image2 = new ol.style.Circle({
radius: 10,
fill: new ol.style.Fill({color: 'red'})
});
var styles2 = {
'Point': new ol.style.Style({
image: image2
})
};
var styleFunction2 = function(feature) {
return styles2[feature.getGeometry().getType()];
};
// interaction on "click"
var selectClick = new ol.interaction.Select({
condition: ol.events.condition.click,
toggleCondition: ol.events.condition.click,
style: styleFunction2
});
var changeInteraction = function() {
map.addInteraction(selectClick);
};
changeInteraction();
中的项目可以具有可变的高度。因此,我试图从AppBarLayout
的{{1}}方法中以编程方式设置项目的minHeight
。
但是,以编程方式设置minHeight似乎没有任何效果。 AppBarLayout确实会完全滚动出屏幕。在XML内部直接设置minHeight会产生预期的结果,并阻止AppBarLayout滚动到屏幕之外。
我错过了什么吗,还是无法以编程方式设置minHeight?
onPreDraw()
ViewTreeObserver.OnPreDrawListener
答案 0 :(得分:1)
尝试改用setMinimumHeight(minHeight)-这样就可以解决问题。
答案 1 :(得分:0)
AppBarLayout appBarLayout =(AppBarLayout)findViewById(R.id.app_bar); appBarLayout.setMinimumHeight(100);
您尝试过吗?