FrameLayout 没有正确使用样式
FrameLayout not use the styles correctly
我对这个网站很满意。我学到了很多。
今天我的疑惑出现了。我想为 FrameLayout 添加样式。并且不要使用。
样式如下:
<style name="textAsk">
<item name="android:textColor">#000000</item>
<item name="android:padding">2dp</item>
<item name="android:minWidth">88dp</item>
<item name="android:minHeight">36dp</item>
<item name="android:textSize" >18dp</item>
<item name="android:layout_marginRight">12dp</item>
<item name="android:layout_marginLeft">12dp</item>
<item name="android:layout_marginTop">5dp</item>
</style>
我展示了在 FrameLayout 中发生变化的片段。每个 Fragment 都包含一个带有文本的 TextView。
片段比较多,想给所有的TextView设置一个通用的样式,这样既省时又不用在每个TextView都设置样式。
我试过这个代码:
<FrameLayout
android:id="@+id/fragmentaskGRP1"
android:layout_width="match_parent"
android:layout_height="450dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
style="@style/textAsk"/>
但唯一对我有用的是:
<item name="android:layout_marginRight">12dp</item>
<item name="android:layout_marginLeft">12dp</item>
<item name="android:layout_marginTop">10dp</item>
非常感谢你所做的一切
问题是子视图不会从它们的封闭 ViewGroup
继承样式。样式可以有父项,但在您的情况下 TextView
不会从 FrameLayout
.
中获取这些属性
FrameLayout
不支持 textColor
或 textSize
属性(API). So it's never set for the FrameLayout and ignored. See the style properties section from the guide Styles and Themes 了解更多信息。
引自指南:
However, if you apply a style to a View that does not support all of the style properties, the View will apply only those properties that are supported and simply ignore the others.
在单独的样式定义中定义与文本相关的样式,并将其用于匹配的视图,如 TextView
其他样式将不会应用于片段。您必须创建另一个逻辑来将样式应用于所有片段(很可能您必须将样式单独应用于每个片段)
FrameLayout
与文本无关,因此 textColor, textSize
将无效。
其中 minWidth, minHeight
是 View 的属性,它认为它们应该有效。
我对这个网站很满意。我学到了很多。
今天我的疑惑出现了。我想为 FrameLayout 添加样式。并且不要使用。
样式如下:
<style name="textAsk">
<item name="android:textColor">#000000</item>
<item name="android:padding">2dp</item>
<item name="android:minWidth">88dp</item>
<item name="android:minHeight">36dp</item>
<item name="android:textSize" >18dp</item>
<item name="android:layout_marginRight">12dp</item>
<item name="android:layout_marginLeft">12dp</item>
<item name="android:layout_marginTop">5dp</item>
</style>
我展示了在 FrameLayout 中发生变化的片段。每个 Fragment 都包含一个带有文本的 TextView。
片段比较多,想给所有的TextView设置一个通用的样式,这样既省时又不用在每个TextView都设置样式。
我试过这个代码:
<FrameLayout
android:id="@+id/fragmentaskGRP1"
android:layout_width="match_parent"
android:layout_height="450dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
style="@style/textAsk"/>
但唯一对我有用的是:
<item name="android:layout_marginRight">12dp</item>
<item name="android:layout_marginLeft">12dp</item>
<item name="android:layout_marginTop">10dp</item>
非常感谢你所做的一切
问题是子视图不会从它们的封闭 ViewGroup
继承样式。样式可以有父项,但在您的情况下 TextView
不会从 FrameLayout
.
FrameLayout
不支持 textColor
或 textSize
属性(API). So it's never set for the FrameLayout and ignored. See the style properties section from the guide Styles and Themes 了解更多信息。
引自指南:
However, if you apply a style to a View that does not support all of the style properties, the View will apply only those properties that are supported and simply ignore the others.
在单独的样式定义中定义与文本相关的样式,并将其用于匹配的视图,如 TextView
其他样式将不会应用于片段。您必须创建另一个逻辑来将样式应用于所有片段(很可能您必须将样式单独应用于每个片段)
FrameLayout
与文本无关,因此 textColor, textSize
将无效。
其中 minWidth, minHeight
是 View 的属性,它认为它们应该有效。