Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 样式文件中的属性对视图没有影响_Java_Android_Layout_Styles_Views - Fatal编程技术网

Java 样式文件中的属性对视图没有影响

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<

我在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>
我的问题是,我注意到一些属性对我的组件没有影响,在这种情况下,布局权重不起作用,我必须在我的代码中指定它,如下所示:

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);