2016-04-10 21 views
6

मेरे पास एक बहुत ही सरल Xamarin फॉर्म ऐप है जिसमें एक स्क्रॉलव्यू है, और अंदर एक स्टैकलेआउट है।जब ज़ूमरिन स्क्रॉलव्यू खींचता है तो काम नहीं करता है जब माउस काम करता है

विंडोज़ पर तैनात किए जाने पर, माउस स्क्रॉलबार के साथ स्क्रॉलव्यू स्क्रॉल करने के लिए सही तरीके से काम करता है। हालांकि, एक ही नियंत्रण को स्क्रॉल करने के लिए स्पर्श/ड्रैग बिल्कुल काम नहीं करता है। स्क्रॉल करने के लिए स्पर्श/खींचने के लिए मुझे कुछ खास करना है? मुझे लगा कि यह सिर्फ काम करेगा।

मुझे यकीन नहीं है कि समस्या निवारण कहां से शुरू करें।

मैं विंडोज 10 को लक्षित कर रहा हूं। इस बिंदु पर अन्य प्लेटफ़ॉर्म वैकल्पिक हैं।

ContentPage.Content = StackLayout1 
StackLayout1.Children = { StackLayout2, Scrollview } 
StackLayout2 contains an entry field and two buttons 
ScrollView, which is the problem, contains another StackLayout 
Inside that I have some labels and some grids 

के बाद एक सरल रेप्रो है:

यूआई कक्षाएं मैं की संरचना इस है। विंडोज 8.1 एमुलेटर में चल रहे स्पर्श कार्यों के साथ मेरे (स्पर्श सक्षम) देव मशीन स्क्रॉलिंग पर एंड्रॉइड एमुलेटर में चल रहा है, स्क्रॉलिंग केवल माउस के साथ काम करता है, स्पर्श के साथ नहीं।

public App() { 

     StackLayout sl = new StackLayout(); 

     for (int i = 1; i < 20; i++) { 
      sl.Children.Add(new Label { Text = "Label1", FontSize = 50, HeightRequest = 100 }); 
     } 

     ScrollView sv = new ScrollView { VerticalOptions = LayoutOptions.FillAndExpand }; 

     sv.Content = sl; 

     ContentPage cp = new ContentPage(); 
     cp.Content = sv; 

     MainPage = cp; 


    } 

क्या एक्समरिन विंडोज डिवाइस को स्पर्श के साथ संभालता है, जैसे भूतल या अन्य विंडोज टैबलेट? या? public boolean onTouchEvent(MotionEvent event)

यह सामान्य विधि है कि पूरे स्क्रीन से सभी स्पर्श ईवेंट की व्याख्या है:

+0

क्या आप कृपया जोड़ सकते हैं कि यह कौन सा प्लेटफ़ॉर्म हो रहा है? क्या यह हर मंच पर हो रहा है Xamarin फॉर्म पर समर्थित है? –

+0

हां सर - विंडोज 10 – onupdatecascade

+0

विंडोज 10 डेस्कटॉप में जैसा? एक विंडोज़ 10 डेस्कटॉप में टच जेस्चर उपलब्ध नहीं होगा यदि यह एक सामान्य पीसी है। आपको ट्रैकपैड जेस्चर (ऐसा लगता है कि आप लैपटॉप पर हैं) जैसे कुछ बारीकी से अनुकरण करने के लिए कुछ करना होगा। अन्यथा Win10 डेस्कटॉप Win10 फोन की तरह कार्य नहीं करेगा। –

उत्तर

0

समाधान Xamarin v2.0.0.6482 को अद्यतन करना है, जो मेरे वीएस 2015 टेम्पलेट के साथ v2.1.0.6529 पर आया था। https://bugzilla.xamarin.com/show_bug.cgi?id=39721 इस समस्या के कारण अद्यतन करना दर्द का थोड़ा सा है। एक बार जब मुझे यह इंस्टॉल हो गया तो स्क्रॉलिंग ने कोई अन्य बदलाव नहीं किया।

स्क्रॉलिंग पुराने संस्करण में, विंडोज़ पर, एक्समरिन मंचों पर एक देव द्वारा सत्यापित किया गया है।

1

Activity से एक ओवरराइड विधि है जो है नहीं है।

जैसा कि आप जानते हैं कि प्रत्येक View की अपनी onTouchEvent() विधि है जिसे आप कुछ कस्टम कार्यान्वयन जोड़ने के लिए कार्यान्वित कर सकते हैं। ऐसा लगता है कि ये स्पर्श ईवेंट "अंदर" तत्वों से "बाहरी" तत्वों में जाते हैं। मेरा मतलब माता-पिता के संबंध हैं।

तो हमारे मामले में, ScrollViewtrue लौटाता है जब स्पर्श घटनाएं क्षैतिज होती हैं। गतिविधि की स्पर्श घटना केवल तभी संभाली जाएगी जब ScrollView स्पर्श ईवेंट स्वयं ही नहीं संभाला जाता है तो आप ठीक हैं। अन्यथा आपको स्क्रॉल व्यू पर टच इवेंट को ओवरराइड करना और कार्यान्वित करना होगा और कुछ मामलों में आपको झूठी वापसी करनी होगी ताकि पूरे लेआउट को इसे लागू करने के लिए।

+0

मैं केवल एंड्रॉइड प्रोजेक्ट में टचवेन्ट() को देख सकता हूं। क्या विंडोज 8.1 परियोजनाएं एक जैसी होने की उम्मीद है?मुझे लगता है कि Xamarin.Forms में (शायद मैं आपके सुझाव को समझ नहीं रहा हूं)। – onupdatecascade

संबंधित मुद्दे