我的PC上有一个xml文件。像这样:

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/title_text"
    style="?textTitle"/>


在attrs.xml中定义:

<attr name="textTitle" format="reference" />


在style.xml文件中编写:

<style name="text_title_bl">
    <item name="android:textColor">#FFF</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textSize">24sp</item>
    <item name="android:gravity">center_vertical|left</item>
    <item name="android:paddingLeft">5sp</item>
    <item name="android:shadowDx">1.0</item>
    <item name="android:shadowDy">1.0</item>
    <item name="android:shadowRadius">1</item>
    <item name="android:shadowColor">#DDD</item>
    <item name="android:background">#FF004488</item>
</style>


我的问题是它如何工作,eclipse知道“?textTitle”属于上面的这种样式?还是为什么“?textTitle” =“ text_title_bl”?这是一个适用于多个主题的示例。

感谢您的帮助:)

最佳答案

?的意思是“在当前主题中查找并使用该值”。在这种情况下,主题的值将用作样式名称。

您的主题有一个条目,键为“ textTitle”,值为“ text_title_bl”。如果您在主题中对此进行了更改,则文本视图将使用其他样式。

10-08 15:02