繁体   English   中英

android主题和库项目

[英]android themes and library projects

我有一个图书馆项目,它是一个TabActivity,并重新定义了一些样式以使用不同的背景绘制自定义的ToggleButton。 我添加了一个styles.xml文件:

     <resources>
         <style name="custom_button" parent="@android:style/Widget.Button">
             <item name="android:gravity">center_vertical|center_horizontal</item>
             <item name="android:textColor">#FFFFFFFF</item>
             <item name="android:shadowColor">#FF000000</item>
             <item name="android:shadowDx">0</item>
             <item name="android:shadowDy">-1</item>
             <item name="android:shadowRadius">0.2</item>
             <item name="android:textSize">16dip</item>
             <item name="android:textStyle">bold</item>
             <item name="android:background">@drawable/btn_custom</item>
             <item name="android:focusable">true</item>
             <item name="android:clickable">true</item>
         </style>
     </resources>

还有一个themes.xml文件:

<resources>
    <style name="custom_theme" parent="android:style/Theme.NoTitleBar">
        <item name="android:buttonStyleToggle">@style/custom_button</item>
    </style>
</resources>

并在清单文件中应用了主题。

如果我直接开始活动而不是图书馆项目,那么一切正常。 但是,如果我从另一个项目启动此活动(使用意图),则自定义主题不会应用于切换按钮,它们看起来像默认的android主题。 加载了其他资源,库项目中有一些可绘制对象,并且它们被绘制为正常。 我没有使用资产。

其他奇怪的是,如果我更改按钮文本:

ToggleButton tbLocal = (ToggleButton)findViewById(R.id.tblocal);
tbLocal.setText("Local");

...当活动开始时,文本不会更改,并且使用默认文本(YES / NO)。 如果我直接启动库项目活动,则不会发生。

有什么事吗

您有两个清单文件:一个在您的库项目中,另一个在您的应用程序项目中。 您需要在应用程序AndroidManifest.xml文件中而不是在库中应用主题(实际上,在库项目清单中定义<activity>元素是没有用的)。

对于切换按钮的开/关文本,请使用以下命令:

ToggleButton tbLocal = (ToggleButton)findViewById(R.id.tblocal);
tbLocal.setTextOn("LocalOn");
tbLocal.setTextOff("LocalOff");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM