我在Android应用程序中使用了一些样式文件,例如:
<style name="message">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#000000</item>
<item name="android:gravity">center_vertical</item>
<item name="android:layout_weight">1</item>
</style>
然后我通过以下方式使用这些样式创建一些组件:
TextView tv = new TextView(new ContextThemeWrapper(this, R.style.message));
我的问题是我注意到一些属性对我的组件没有影响,在这种情况下, layout_weight 不起作用,我不得不在我的代码中指定它,如下所示:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT);
params.weight = 1;
tv.setLayoutParams(params);
如果您有任何想法,请告诉我。
谢谢。
答案 0 :(得分:0)
问题依赖于这样一个事实:android:layout_weight
仅适用于您经历的某些LayoutParam
。
作为关于Android上的样式的一般最佳做法,建议不要在样式中包含layout
特定属性,因为样式化视图可以重复使用并位于不同的布局中。