2017-03-06 13 views
1

使用Android的选择器,而不useSpinner这读取http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Picker该useSpinner属性被弃用。 如何正确使用选取器?在Appcelerator的

当我使用Android的机械臂没有useSpinner财产也不会显示出来(左选择器)。当我点击选取器(绿色边框)时,数值显示出来并且正常工作。

随着useSpinner设置为true,它正确(右)显示出来。看截图。拾取器的enter image description here

能见度最初处于设置为false将.xml。当用户点击相应的标签时,选取器变得可见。这在iOS中正常工作。

回答

4

其实这并不是什么错误的行为。红色边框选择器已经过时,你甚至都不会在任何应用程序中看到它,甚至是本地应用程序。

标准选择器是左一个最初显示选定值或所述第一值作为默认值。据我所知,你不能直接通过.tss文件改变左选择器的文本颜色。


相反,您可以使用自定义主题并将其用于包含选取器的窗口。

下面是如何应用主题采摘等元素一个简单的例子。

  • 将这个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> 

现在,你可以使用这个主题,无论是在全球所有窗口,或针对特定的窗口。

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 
} 
+0

感谢您的明确解释,PRASHANT! – user24957

+0

欢迎!只是另一个建议,始终坚持最新和本地元素,而不是手动创建,因为它们会随时更新,而且您不需要更新它们。这可以确保您的应用可以在Android/iOS操作系统更新发生变化的情况下长时间运行而不会出现UI问题。 –