Places SDK для Android: стилизация автозавершения - PullRequest
1 голос
/ 23 марта 2020

Я использую Намерение для запуска действия автозаполнения из SDK Places для Android, , как описано здесь , в следующих строках:

Intent intent = new Autocomplete.IntentBuilder(
        AutocompleteActivityMode.FULLSCREEN, fields)
        .build(this);
startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE);

Но я не вижу способ стилизации результирующего действия автозаполнения, чтобы он максимально соответствовал теме моего приложения, и в частности следовал теме дня / ночи, используемой в приложении. В настоящее время фон списка мест всегда выглядит белым, с темным текстом сверху, то есть подходит только для светлой темы.

Например, вот как это выглядит при запуске из приложения работает в системе, настроенной на темную тему:

enter image description here

Как стилизовать это задание?

Ответы [ 2 ]

2 голосов
/ 31 марта 2020

Согласно документации существует нечто, называемое AutoCompleteActivity , которое расширяет AppCompatActivity, а также AutocompleteSupportFragment , которое расширяет Fragment.

вместо использования IntentBuilder для создания то, что я предполагаю, является просто c версией AutocompleteActivity, вы должны создать свою собственную AutocompleteActivity, используя предоставленный конструктор, а затем переопределить onCreate, чтобы установить для Темы темный. а затем вы просто открываете действие, как и при обычном намерении.

Важное примечание: в документации вы обнаружите, что по какой-то причине AutocompleteSupportFragment включает в себя намного больше полезных методов, которые могут вас заинтересовать (например, setLocationRestriction (), setPlaceFields (), setTypeFilter et c), но по какой-то причине они не отображаются в документах AutoCompleteActivity. я не уверен, что они просто забыли поместить их в do c или версия фрагмента на самом деле более мощная, чем Activity. это просто означает, что вам может понадобиться использовать фрагмент (и поместить его в пустое действие) вместо действия.

0 голосов
/ 01 апреля 2020

В colors.xml файле убедитесь, что вы определили следующее:

<resources>
   <color name="colorPrimary">#ffffff</color>
   <color name="colorPrimaryDark">#03DAC5</color>
   <color name="colorAccent">#03d</color>
</resources>

В styles.xml вы должны задать это:

<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>

С этим я смог изменить Цвета Места SDK.

colorPrimary используется для фона, окружающего EditText

colorPrimaryDark используется для строки состояния

Styles & Screenshot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...