Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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
PlacesSDK for Android:设置自动完成活动的样式_Android_Google Maps - Fatal编程技术网

PlacesSDK for Android:设置自动完成活动的样式

PlacesSDK for Android:设置自动完成活动的样式,android,google-maps,Android,Google Maps,我打算从PlacesSDK for Android启动自动完成活动,具体如下: Intent intent = new Autocomplete.IntentBuilder( AutocompleteActivityMode.FULLSCREEN, fields) .build(this); startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE); 但我看不到一种设计自动完成活动样式的方法,使其尽可能与

我打算从PlacesSDK for Android启动自动完成活动,具体如下:

Intent intent = new Autocomplete.IntentBuilder(
        AutocompleteActivityMode.FULLSCREEN, fields)
        .build(this);
startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE);
但我看不到一种设计自动完成活动样式的方法,使其尽可能与我的应用程序的主题匹配,尤其是遵循应用程序中使用的昼夜主题。目前,位置列表的背景始终显示为白色,顶部为深色文本,即仅适用于浅色主题

例如,从运行在设置为“暗主题”的系统上的应用程序中启动时,其外观如下所示:


这个活动应该如何设置样式?

根据文档,有一种东西叫做扩展AppCompatActivity和扩展片段

不要使用
IntentBuilder
来创建我认为只是AutoCompleteTactivity的通用版本,您应该使用提供的构造函数创建您自己的AutoCompleteTactivity,然后覆盖onCreate以将主题设置为暗。然后你就可以像平常一样打开活动


重要提示:在文档中,您会发现,出于某种原因,AutocompleteSupportFragment包含了许多您可能感兴趣的更有用的方法(如setLocationRestriction()、setPlaceFields()、setTypeFilter等),但出于某种原因,这些方法不会出现在AutoCompleteSactivity文档中。我不确定他们是忘了把它们放在文档中,还是片段版本实际上比活动更强大。这只是意味着您可能必须使用片段(并将其植入一个空活动)而不是活动。

colors.xml
文件中,请确保已定义以下内容:

<resources>
   <color name="colorPrimary">#ffffff</color>
   <color name="colorPrimaryDark">#03DAC5</color>
   <color name="colorAccent">#03d</color>
</resources>
有了它,我就可以改变这些地方的颜色了

colorPrimary
用于编辑文本周围的背景

colorPrimaryDark
用于状态栏


我尝试在我的主要活动中使用自动完成片段,基于此:。但是自动完成的片段似乎没有呈现主要活动的主题。。。(尽管有黑暗主题活动,但仍以光明为主题)。。。我认为这是为了,而不必在onCreate中明确设置片段的主题?查看仍无法查看可用于设置显示的位置列表样式的实际样式元素。。。请你具体说明它们是什么?根据这一点:它说“注意:不要直接启动AutoCompleteTactivity。相反,使用启动Autocomplete的意图(兼容性库中的PlaceAutocomplete)。”嗯,你说得对,我没有读到关于不要直接调用AutoCompleteTactivity的警告。但是片段仍然是一个选项。看,文档说:默认情况下,片段没有边框或背景。要提供一致的视觉外观,请将片段嵌套在另一个布局元素(如CardView)中。您是否尝试过此操作?这样做似乎只会影响片段嵌入活动中出现的搜索框的背景。但点击该搜索框只会打开另一个搜索框(在屏幕顶部),下面是动态填充的位置列表。。。第二个搜索框和列表都是轻量级主题的样式,而不考虑其他内容。看起来有点像:您使用的是什么版本的PlacesSDK?您是否在colors.xml中为“primary”和“primary_dark”定义了颜色?@apmartin1991版本
2.2.0
,并且没有,我还没有在我的colors.xml中定义这些颜色名称……搜索框下方显示的位置列表如何?我在作品中的截图已经显示了主要活动的有限样式,包括搜索框本身的
colorPrimary
(如您所注意到的),但在我的作品中,我的状态是:“目前位置列表的背景始终显示为白色,顶部为黑色文本,即仅适用于浅色主题”。这究竟意味着什么?谢谢
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
   <item name="colorPrimary">@color/colorPrimary</item>
   <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
   <item name="colorAccent">@color/colorAccent</item>
</style>