Ich entwickle eine App mit Appcelerator-Framework (mit Appcelerator Studio), aber ich habe ein Problem ohne eine Lösung (noch) aufgetreten.Appcelerator - ListView Fehler (nur in Android)
ich in der Welt und den damit verbundenen Telefon-Vorwahl eine Liste mit allen Ländern erschaffe, das heißt „USA +1“, „United Kingdom +44“ und so weiter. Ich benutze einen ListView, da der Benutzer einen wählen muss. Auf iOS funktioniert alles super, aber wenn ich die App in meinem Android-Gerät betreibe, sind die ListItems alle Geschenke, aber nicht deren Text. Was ich meine ist, dass ich in iOS alle Länder und ihren entsprechenden Namen in jeder Zeile sehe. In Android sehe ich, dass es mehr als 150 Zeilen in meinem ListView gibt, ich kann auf diese Zeilen klicken, die Anwendung wird das entsprechende Land auswählen, aber Ich sehe den gedruckten Text in den Zeilen nicht.
Ich verwende eine ItemTemplate, und dann schaffe ich (mit Javascript) ein ListSection, auf die ich die Elemente hinzuzufügen (sie dynamisch mit der bindId Eigenschaft hinzufügen).
Ich habe gesehen, dass andere Anwendungen mit Appcelerator dieses Problem nicht haben, also versuche ich herauszufinden, wo ich falsch liege.
countryList.xml
<Alloy>
<Window class="container" id="win_firstStart_countryList">
<ListView id="ListView_prefixes">
<SearchBar id="searchBar_countries"/>
<Templates>
<ItemTemplate id="countryCodeTempl" name="countryCodeTempl">
<Label id="label_countryName"/>
<Label id="label_countryPrefix"/>
</ItemTemplate>
</Templates>
</ListView>
</Window>
</Alloy>
countryList.tss
"#ListView_prefixes": {
"left": "0.00%",
"top": "0%",
"defaultItemTemplate": "countryCodeTempl"
},
"#countryCodeTempl": {
"color": "#000000",
"backgroundColor": "#000000",
},
"#label_countryName": {
"color": "#000000",
"font": {fontSize:'18dp',fontFamily:'',fontStyle:'',fontWeight:''},
"left": "3%",
"top": "4dp",
"bindId": "countryName",
"height": Ti.UI.SIZE,
"width": "45%",
"backgroundColor": "#ff0000",
},
"#label_countryPrefix": {
"bindId": "countryPrefix",
"top": "4dp",
"width": "45%",
"height": Ti.UI.SIZE,
"color": "#000000",
"font": {fontSize:'18dp',fontFamily:'',fontStyle:'',fontWeight:''},
"right": "3%",
"textAlign": "right"
},
"#win_firstStart_countryList": {
"left": "0.00%",
"top": "0%",
"height": "100%",
"width": "100.00%",
"backgroundColor": "#ffffff",
}
countryList.js
var countrySection = Ti.UI.createListSection({});
var items = [];
var db = Ti.Database.open(DB_NAME);
var query = db.execute("SELECT country_code, country_name, country_prefix from countries");
while (query.isValidRow()) {
items.push({
countryName: { text: query.fieldByName('country_name') },
countryPrefix: { text: "+ " + query.fieldByName('country_prefix') },
properties: {
title: query.fieldByName('country_name'),
itemId: query.fieldByName('country_code'),
searchableText: query.fieldByName('country_name'),
caseInsensitiveSearch: true
}
});
query.next();
}
query.close();
db.close();
countrySection.setItems(items);
$.ListView_prefixes.sections = [countrySection];
$.ListView_prefixes.searchView = $.searchBar_countries;
$.searchBar_countries.addEventListener('change', function(e){
$.ListView_prefixes.searchText = e.value;
});
Do Sie haben eine Idee darüber, warum ich die countryName
und countryPrefix
in meinem ListItems nur in AndDroid-Geräten nicht sehen kann?