在 Appcelerator 中使用 Android 没有 useSpinner 的选择器
Using Android Picker without useSpinner in Appcelerator
此处显示 http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Picker useSpinner 属性 已弃用。 那么如何正确使用选择器呢?
当我在 Android 中使用没有 useSpinner 属性 的选择器时,它没有显示(左选择器)。当我点击选择器(绿色边框)时,值显示出来并且工作正常。
将 useSpinner 设置为 true,它会正确显示(右)。看截图。
选择器的可见性最初在 .xml 中设置为 false。当用户点击相应的标签时,选择器变为可见。这在 iOS.
中工作正常
其实这并不是什么错误的行为。红色边框选择器已经过时,你几乎不会在任何应用程序中看到它,即使是原生应用程序。
标准选择器是左边的选择器,它最初显示所选值或第一个值作为默认值。据我所知,你不能通过.tss文件直接更改左选择器的文本颜色。
相反,您可以使用自定义主题并将其用于包含选择器的window。
这是一个简单的示例,说明如何将主题应用到选择器和其他元素。
- 将此 xml 代码保存在一个文件中(随便命名,比方说 theme.xml)。
- 将此文件放在以下位置(如果不存在则创建文件夹)。
Your_Project_Folder -> 应用程序 -> 平台 -> android -> 资源 -> 值 -> 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>
现在,您可以将此主题全局用于所有 windows,或用于特定 window。
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
}
此处显示 http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Picker useSpinner 属性 已弃用。 那么如何正确使用选择器呢?
当我在 Android 中使用没有 useSpinner 属性 的选择器时,它没有显示(左选择器)。当我点击选择器(绿色边框)时,值显示出来并且工作正常。
将 useSpinner 设置为 true,它会正确显示(右)。看截图。
选择器的可见性最初在 .xml 中设置为 false。当用户点击相应的标签时,选择器变为可见。这在 iOS.
中工作正常其实这并不是什么错误的行为。红色边框选择器已经过时,你几乎不会在任何应用程序中看到它,即使是原生应用程序。
标准选择器是左边的选择器,它最初显示所选值或第一个值作为默认值。据我所知,你不能通过.tss文件直接更改左选择器的文本颜色。
相反,您可以使用自定义主题并将其用于包含选择器的window。
这是一个简单的示例,说明如何将主题应用到选择器和其他元素。
- 将此 xml 代码保存在一个文件中(随便命名,比方说 theme.xml)。
- 将此文件放在以下位置(如果不存在则创建文件夹)。
Your_Project_Folder -> 应用程序 -> 平台 -> android -> 资源 -> 值 -> 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>
现在,您可以将此主题全局用于所有 windows,或用于特定 window。
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
}