我在我的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);
如果您有一个主意,请告诉我。
谢谢。
问题依赖于android:layout_weight
仅在您所经历的某些LayoutParam
s上工作的事实。
作为在Android上的样式方面的一般最佳实践,建议不要将layout
特定属性包含在样式中,因为您的样式视图可以重复使用并处于不同的布局。