Java 样式文件中的属性对视图没有影响
我在Android应用程序中使用了一些样式文件,例如:Java 样式文件中的属性对视图没有影响,java,android,layout,styles,views,Java,Android,Layout,Styles,Views,我在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<
<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>
我的问题是,我注意到一些属性对我的组件没有影响,在这种情况下,布局权重不起作用,我必须在我的代码中指定它,如下所示:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT);
params.weight = 1;
tv.setLayoutParams(params);
如果你有什么想法,请告诉我
谢谢。这个问题取决于这样一个事实:android:layout\u weight仅适用于您所经历的某些
LayoutParam
s
作为Android上样式的一般最佳实践,建议不要在样式中包含
layout
特定属性,因为您的样式视图可以重复使用并位于不同的布局中 我遇到了一些观点,认为这种编程样式的方法忽略了某些属性。因此,很可能无法避免单独设置布局参数。因此,我需要在代码中始终为使用代码添加到布局的组件设置布局属性?因为当组件/视图直接从xml布局文件添加时,没有问题,只有当我从代码生成组件时才会出现问题。不同的LayoutParam有不同的属性可以设置。
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT);
params.weight = 1;
tv.setLayoutParams(params);