无法以编程方式将样式设置为 LinearLayout

Posted

技术标签:

【中文标题】无法以编程方式将样式设置为 LinearLayout【英文标题】:Cannot set style to LinearLayout programmatically 【发布时间】:2019-03-17 13:17:50 【问题描述】:

我正在尝试以这种方式将样式设置为以编程方式创建的 LinearLayout:

(参考:android: set view style programmatically)

LinearLayout linearLayout = new LinearLayout(this, null, R.style.linear_container);

还有styles.xml

<style name="linear_container">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_marginBottom">20dp</item>
    <item name="android:background">#9B1212</item>
    <item name="android:orientation">vertical</item>
</style>

但是样式没有应用如何使它工作?

【问题讨论】:

无法解析符号 ContextThemeWrapper 正在工作,但边距、宽度和高度未设置!! 那么如何以编程方式为项目添加边距?我尝试了很多解决方案,但对我没有任何帮助。你能帮我解决这个问题吗? 这里添加了问题请看***.com/questions/55207828/… 【参考方案1】:

您可以设置布局参数如下:

    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
         LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

    layoutParams.setMargins(10, 10, 10, 10);
    linearLayout.setLayoutParams(layoutParams);

【讨论】:

@php 用户知道了吗? @PHP 用户有任何疑问?【参考方案2】:

以编程方式设置样式的更简单方法是使用 Airbnb 的 paris 库。 正确实现库后,就像

myView.style(R.style.MyStyle)

【讨论】:

以上是关于无法以编程方式将样式设置为 LinearLayout的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式在视图中设置样式属性

以编程方式设置按钮样式

如何以编程方式在 Xcode 中快速设置 UIPageViewController 的过渡样式?

以编程方式设置 Android 按钮样式

以编程方式设置 TextView 的样式

UIButton 以编程方式获取默认突出显示样式