我试图为我的Android应用提供实质性视图。我已经按照指南进行了操作:
http://docs.appcelerator.com/platform/latest/#!/guide/Android_Themes
http://www.appcelerator.com/blog/2015/07/understanding-the-android-material-theme/
如果我放置一个按钮,它就会被物化"。它具有默认颜色,并在单击时显示动画。
但我想要的是屏幕上有几个按钮 - 每个按钮都有不同的颜色。但我仍然希望将它们作为素材按钮 - 但是一旦我给它们backgroundColor
它们只是一个普通的按钮 - 没有任何关于它们的物质化。
我可以更改素材视图中项目的颜色,还是我只能使用主题中定义的内容?
修改
只是为了澄清 - 我希望在屏幕上有几个按钮 - 每个按钮都有自己的颜色 - 作为材料设计按钮(包括动画和材质外观)。
编辑2
我在Appcelerator jira(https://jira.appcelerator.org/browse/AC-560)上发现了类似的问题,其中appcelerator声明它不是错误 - 而是本机行为。
所以我正在修改我的问题 - 我可以像对待本机一样设置每个控件的自定义Android样式吗?
答案 0 :(得分:0)
在回复您的上一条评论时,这是我如何为我的按钮进行解决方法,我还有其他按钮功能,如无效,启用,按下,设置标题等...
button.xml
<Alloy>
<View id="button">
<Label id="title"/>
<ImageView id="icon"/>
</View>
</Alloy>
button.js(例如)
var args = arguments[0] || {},
data = {};
$.title.text = args.title;
$.icon.image = '/images/button/'+args.image+'.png';
data.select = function(status) {
if($) {
if($.button) $.button.backgroundColor = status ? '#fff' : Alloy.CFG.myHoverColor;
if($.icon) $.icon.image = '/images/button/'+args.image+'_hover.png';
}
};
data.click = function() {
data.select(true);
setTimeout(function() {
if($ && $.button && data && data.select) data.select(false);
},1000);
};
$.button.addEventListener('click',data.click);
$.button.cleanup = function() {
$.destroy();
$.off();
$.button.addEventListener('click',data.click);
$ = data = args = null;
};
评论中使用的链接: