Android – 以编程方式添加视图忽略某些样式属性

Android – 以编程方式添加视图忽略某些样式属性,第1张

概述当用户点击另一个按钮时,我以编程方式在我现有的 Android视图中添加一个按钮.它在功能方面起作用,但一些样式信息似乎被忽略了. 我通过一个单独的布局添加按钮,只包含按钮,预先填充样式值. < Button xmlns:android =“http://schemas.android.com/apk/res/android”style =“@ style / FileStorageDeleteB 当用户点击另一个按钮时,我以编程方式在我现有的 Android视图中添加一个按钮.它在功能方面起作用,但一些样式信息似乎被忽略了.

我通过一个单独的布局添加按钮,只包含按钮,预先填充样式值.

< button xmlns:androID =“http://schemas.androID.com/apk/res/androID”style =“@ style / fileStorageDeletebutton”>< / button>

通过使用getLayoutInflater,我可以将此按钮添加到布局中.

buttonDelete =(button)getLayoutInflater().inflate(R.layout.pete_button_filedelete,null);

linearLayout layout =(linearLayout)findVIEwByID(R.ID.layoutfileStorage);

layout.addVIEw(buttonDelete,1);

我在values目录中有一个XML文件,用于设置@ style / fileStorageDeletebutton的颜色,文本等,其中大部分都是在按钮添加时使用的.但由于某种原因,四个边距属性和layout_below被忽略.

当这个按钮出现时,我在LogCat中没有出现任何错误,就好像没有应用样式一样.如果我在该布局的XML中手动包含该按钮,它将成功使用所有样式.

任何帮助非常感谢.

解决方法 调用addVIEw()时需要传递布局参数,因为布局参数与单个视图无关,它们总是在周围视图的上下文中获取. addVIEw()的变体采用LayoutParams参数.

编辑添加更多详细信息

您应该创建一组linearLayout.LayoutParams并在那里设置边距,然后将其传递给addVIEw()

无论如何,对于linearLayout都会忽略layout_below(该属性仅与relativeLayout相关.当您调用addVIEw(buttonDelete,1)时,您将告诉它将视图放在线性布局中的哪个位置.

总结

以上是内存溢出为你收集整理的Android – 以编程方式添加视图忽略某些样式属性全部内容,希望文章能够帮你解决Android – 以编程方式添加视图忽略某些样式属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1140789.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存