2009-05-06 8 views
9

मैं एक टैबनविगेटर में सशर्त रूप से एक टैब छिपाना चाहता हूं। ऐसा लगता है कि दृश्य सेटिंग ठीक से काम नहीं करती है (संभवतः क्योंकि टैबबविगेटर टैब को छुपाता है जो वर्तमान में चयनित नहीं हैं)।TabNavigator में किसी टैब को छुपाने का सबसे अच्छा तरीका क्या है?

ऐसा करने का सही तरीका क्या है?

उत्तर

21

आप TabNavigator की GetTabAt() विधि का उपयोग करके ऐसा कर सकते हैं जो दृश्य टैब बनाता है जो बटन देता है। फिर आप उस बटन की दृश्यमान संपत्ति सेट कर सकते हैं। बाइंडिंग के साथ यह सेटअप प्राप्त करना थोड़ा मुश्किल है, लेकिन यह करने योग्य है।

आप इसके बजाय टैब को अक्षम करने पर भी विचार कर सकते हैं, जिसे आप इसी टैबनेविगेटर बच्चे (जिसे दृश्यमान काम नहीं करता) पर सक्षम करके कर सकते हैं।

+2

यह अच्छा काम करता है, धन्यवाद। आपको बटन पर InLayout शामिल करने की भी आवश्यकता है। मैंने इसे सामान्य श्रोताओं के साथ कार्यान्वित कर दिया, और बाइंडिंग के साथ ऐसा करने की कोशिश करने के बारे में चिंता न करें। –

+0

इसके लिए धन्यवाद, आज भी यही समस्या थी। –

1

छिपाने से आपका क्या मतलब है? यदि आप वास्तव में निकालना चाहते हैं, तो बस अपनी सरणी लें जो TabNavigator में डेटा से जुड़ी है, और इससे लागू तत्व को हटा दें।

यदि आप उन्हें अस्थायी रूप से हटा देना चाहते हैं, तो अपने आप का एक घटक बनाएं जो TabNavigator को समाहित करता है और इसमें हटाए गए टैब और वास्तविक टैब की एक सरणी होती है। फिर जब आप फिट देखते हैं तो इसे संभाल लें।

+1

मेरा मतलब है "अस्थायी रूप से नहीं दिखाएं"। TabNavigator से इसे हटाकर ओवरकिल की तरह लगता है। ऐसा करना अच्छा होगा कि बस बाइंडिंग का उपयोग करें ... –

1

आप flexlib प्रोजेक्ट को देखना चाहेंगे। उनके पास SuperTabNavigator नामक एक घटक है जो छिपाने वाले टैब (मुझे लगता है) सहित फ्लेक्स टैब नॅविगेटर के आधार पर बहुत सारी कार्यक्षमता जोड़ता है।

यदि आपको अपना स्वयं का घटक बनाना है, हालांकि, यह थोड़ा और मुश्किल है। यह जानने की बात यह है कि "टैब" वास्तव में विशेष रूप से स्टाइल बटन होते हैं, जो टैबबार घटक के भीतर निहित होते हैं (टैबबार तब टैबनविगेटर के भीतर होता है)। आपको तब क्या करना होगा, सबक्लास टैबनाविगेटर है और आपके विचारों पर कुछ संपत्ति है (यानी कैनवस, इत्यादि जो टैबनेविगेटर में जोड़े गए हैं) जो टैबबार बटन के दृश्यमान और शामिल इनलाइट गुणों के लिए बाध्य हैं।

BindingUtils.bindProperty(tabButton, "visible", view, "someProperty"); 
BindingUtils.bindProperty(tabButton, "includeInLayout", view, "someProperty"); 
0

मैं TabNavigator के बारे में पता नहीं है, लेकिन अन्य कंटेनरों में, आप false को includeInLayout संपत्ति सेट कर सकते हैं और यह ध्यान नहीं दिया जाएगा:

संक्षेप में, क्या तुम होगा कुछ की तरह है। आपको शायद इसे visible के साथ संयोजित करने की आवश्यकता है।