Android 如何为组件动态设置样式?
我使用GetLayoutFlater方法动态设置按钮样式,但不应用宽度、高度和重量。如何解决这个问题 子菜单是一个水平线性布局,我的按钮动态添加到其中Android 如何为组件动态设置样式?,android,Android,我使用GetLayoutFlater方法动态设置按钮样式,但不应用宽度、高度和重量。如何解决这个问题 子菜单是一个水平线性布局,我的按钮动态添加到其中 in MainActivity : award = (Button) getLayoutInflater().inflate(R.layout.btn_layout, null); award.setId(R.id.award); award.setText("-
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>
主活动中的:
奖励=(按钮)GetLayoutFlater()。充气(R.layout.btn_layout,null);
奖励。setId(R.id.award);
裁决。setText(“--”);
子菜单addView(奖励);
在充气机布局中:
在style.xml中:
#fff
@可牵引/选择器
在添加视图之前,必须添加带有布局参数的视图:
award.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT,1.0f));
然后:
submenu.addView(award);
尝试setBackgroundResource(R.drawable.subbtn)
@h3diyeh:plz查看更新的答案,尝试添加另一个float参数来设置权重。它不起作用,错误是:错误:(87,43)java:没有为LayoutParams(int,int,float)找到合适的构造函数。我找到了答案:LinearLayout.LayoutParams按钮\参数=新的LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH\父项); 按钮参数重量=0.3f代码>