2017-03-06 82 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問題。 –