【发布时间】:2015-06-26 07:40:42
【问题描述】:
我正在使用来自 Google Play 服务的 PlacePicker 库,它启动了一项新活动。新的活动/选择器有一个默认没有样式的工具栏(actionbar)。
PlacePicker 文档指出
如果您使用材质主题在应用程序中设置自定义颜色, 地点选择器继承了 colorPrimary 和 colorPrimaryDark 来自主题的属性。
我的 style.xml 文件中有一个主题:
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">#5665bb</item>
<item name="android:colorPrimary">#5665bb</item>
<item name="colorPrimaryDark">#41456b</item>
<item name="android:colorPrimaryDark">#41456b</item>
</style>
我已经设置了要在我的 Android Manifesto 文件中使用的主题
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
placepicker 由以下代码创建:
try {
PlacePicker.IntentBuilder intentBuilder = new PlacePicker.IntentBuilder();
Intent intent = intentBuilder.build(Main.this);
// Start the intent by requesting a result,
// identified by a request code.
startActivityForResult(intent, REQUEST_PLACE_PICKER);
} catch (GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException e) {
Log.e("", "Error with Google Play lib.");
}
但是,工具栏没有设置样式。和以前一样,它具有白色背景和黑色文本。 有趣的是,我自己的工具栏(操作栏)确实有样式。
如何强制 placepicker 活动采用我的主题?
【问题讨论】:
-
启动活动使用的样式是什么?
-
@ianhanniballake 一个主题应用于整个应用程序,所以我会接受所有底层活动应该是相同的主题。
-
所以,为了确认一下,您在启动
PlacePicker的活动中没有android:theme?您还可以包含用于创建PlacePicker的代码吗? -
@ianhanniballake 是正确的。活动上没有主题,但应用程序上有主题。我还添加了用于启动 PlacePicker 的代码。
标签: android google-play-services google-places-api android-theme