[英]toggle searchbar on Titanium android tableview
我有一個帶有搜索欄的表格視圖
var tv = Titanium.UI.createTableView ({
data: official_list,
filterAttribute: 'title',
backgroundColor : '#fff',
search: search,
searchHidden:false,
top: '50dp'
});
我希望搜索欄最初被隱藏,並且僅在按下searchbutton時顯示。 我為此使用以下代碼
searchButton.addEventListener('click', function(_e) {
search.visible = !search.visible;
if(search.visible) {
search.focus();
self.softKeyboardOnFocus = 0;
}
else {
Ti.UI.Android.hideSoftKeyboard();
}
});
我遇到的問題是,即使搜索被隱藏,在搜索欄的位置仍會留有空白。
我嘗試使tableview的坐標動畫化,但是這會覆蓋導航欄,並且仍然保留空白。 無論如何,我是否可以切換搜索欄(也可以通過刪除空白?)。
請幫忙!
我通過創建2 searchBar並使tableview中的searchBar坐標超出范圍來解決了該問題。 附加到表格視圖的搜索欄設為1dp。
var search = Titanium.UI.createSearchBar({
barColor:'#000',
showCancel:false,
top: -50,
height:'45dp',
hidden: true,
visible: false,
softKeyboardOnFocus : Titanium.UI.Android.SOFT_KEYBOARD_DEFAULT_ON_FOCUS
});
var search_table = Titanium.UI.createSearchBar({
barColor:'#000',
showCancel:false,
height:'1dp',
hidden: true,
visible: false,
});
現在,我可以為searchBar(搜索)設置動畫了。
search.visible = !search.visible;
if(search.visible) {
search.focus();
self.softKeyboardOnFocus = 0;
search.animate({
top: '50dp',
duration : 500,
delay : 0,
curve: Titanium.UI.ANIMATION_CURVE_EASE_IN
});
tv.animate({
top: '90dp',
duration : 500,
delay : 0,
curve: Titanium.UI.ANIMATION_CURVE_EASE_IN
});
}
else {
Ti.UI.Android.hideSoftKeyboard();
tv.animate({
top: '50dp',
duration : 500,
delay : 0,
curve: Titanium.UI.ANIMATION_CURVE_EASE_OUT
});
}
});
並將值從searchBar傳遞到search_table(更好的方法是為每個搜索編寫查詢,但是我有7個以上,而是選擇將值傳遞給tableview.search)
search.addEventListener('change', function(e) {
search_table.value = e.value;
});
我認為您的解決方案不起作用,因為tableview是窗口的直接子級。
如果您用另一個視圖將表格視圖包圍起來,然后在該表格視圖中對表格視圖進行動畫處理以隱藏搜索欄,則該方法應該起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.