Использование Android Picker без useSpinner в Appcelerator
Здесь написано http://docs.appcelerator.com/platform/latest/, что свойство useSpinner устарело. Как тогда правильно использовать сборщик?
Когда я использую средство выбора в Android без свойства useSpinner, оно не отображается (средство выбора слева). Когда я нажимаю на кнопку выбора (зеленая рамка), отображаются значения, и они работают правильно.
Если для useSpinner установлено значение true, оно отображается правильно (справа). смотрите скриншот.
Видимость средства выбора изначально в.xml установлена в false. Когда пользователь нажимает на соответствующие метки, сборщик становится видимым. Это прекрасно работает в iOS.
1 ответ
На самом деле, это не любое неправильное поведение. Средство выбора красной границы устарело, и вы вряд ли увидите его ни в одном приложении, даже в нативном.
Стандартный инструмент выбора - левый, который изначально показывает выбранное значение или первое значение по умолчанию. Насколько я знаю, вы не можете напрямую изменить цвет текста левого средства выбора через файлы.tss.
Вместо этого вы можете использовать пользовательские темы и использовать его для того окна, которое содержит средства выбора.
Вот краткий пример того, как вы можете применять темы к средствам выбора и другим элементам.
- Сохраните этот XML-код в файле (назовите его как угодно, скажем, theme.xml).
- Поместите этот файл в расположении ниже (создайте папки, если не существует).
Your_Project_Folder -> приложение -> платформа -> android -> res -> values -> theme.xml
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="PickerTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:spinnerItemStyle">@style/SpinnerItem</item>
<!-- Activate this for Spinners/Plain Pickers in selected/popup state -->
<!-- <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item> -->
<!-- Override Date Dialog -->
<item name="android:datePickerDialogTheme">@style/MyDatePickerDialogTheme</item>
<!-- Override Time Dialog -->
<item name="android:timePickerDialogTheme">@style/MyTimePickerDialogTheme</item>
</style>
<!-- Use this style for Spinners/Plain Pickers in default state -->
<style name="SpinnerItem">
<item name="android:textColor">#000000</item>
</style>
<style name="SpinnerDropDownItem">
<item name="android:textColor">@color/primary_dark</item>
<item name="android:background">@color/accent</item>
</style>
<style name="MyDatePickerDialogTheme" parent="android:Theme.Material.Light.Dialog">
<item name="colorAccent">@color/primary</item>
<item name="android:textColorSecondary">#000000</item>
</style>
<style name="MyTimePickerDialogTheme" parent="android:Theme.Material.Light.Dialog">
<item name="colorAccent">@color/primary</item>
<item name="android:textColorSecondary">#000000</item>
</style>
</resources>
Теперь вы можете использовать эту тему глобально для всех окон или для конкретного окна.
1 - Используя тему для всего приложения, используйте это в файле tiapp.xml.
<android xmlns:android="http://schemas.android.com/apk/res/android">
<manifest>
<application android:theme="@style/PickerTheme">
....
</application>
</manifest>
</android>
2 - Использование темы в файле.tss
"Window[platform=android]": {
theme : 'PickerTheme',
backgroundColor : 'white',
windowSoftInputMode : Ti.UI.Android.SOFT_INPUT_STATE_ALWAYS_HIDDEN | Titanium.UI.Android.SOFT_INPUT_ADJUST_RESIZE
}