如何动态设置样式到组件?

时间:2014-09-09 09:27:51

标签: android

我使用了getlayoutInflater方法动态设置按钮的样式,但不应用宽度,高度和重量。怎么能解决这个问题呢?

子菜单是一个水平线性布局,我的按钮被动态添加到其中。

in MainActivity : 
 award = (Button) getLayoutInflater().inflate(R.layout.btn_layout, null);
                    award.setId(R.id.award);
                    award.setText("---");
                    submenu.addView(award);

in inflater Layout :
<Button
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="wrap_content"
        android:width="0dp"
        android:layout_weight="1"
        style="@style/subbtn"></Button>


in style.xml :
<style name="subbtn">
        <item name="android:textColor">#fff</item>
        <item name="android:background">@drawable/selector</item>
    </style> 

1 个答案:

答案 0 :(得分:1)

在添加视图之前,您必须添加LayoutParams的内容:

award.setLayoutParams(new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT,
    LinearLayout.LayoutParams.WRAP_CONTENT,1.0f));

然后:

submenu.addView(award);