2014-09-20 8 views
6

दुर्भाग्य से उपयोग कर रहा है Moto360 यूरोप के लिए लाभ उठाने नहीं है अभी तक ...दौर Android Wear एम्यूलेटर रेक्ट लेआउट

मैं एक दौर Android Wear एम्यूलेटर चल रहा हूँ और इस ठीक काम कर रहा है।

हालांकि जब मैं अपने Android Wear गतिविधि जब दौर एम्यूलेटर चल रहा है (जो एक WatchViewStub उपयोग करता है) लेआउट इस्तेमाल किया जा रहा rect_activy_layout और नहीं दौर लेआउट बाकी

किसी को भी इस मुद्दे या हल हो गई है चलाने के?

धन्यवाद

+0

मुझे वास्तव में मेरे मोटो 360 पर एक ही समस्या का सामना करना पड़ा। मुझे यह जानने में दिलचस्पी है कि किसी और ने इसे हल करने के लिए क्या किया। – kentarosu

+0

इस प्रश्न के लिए सदस्यता ले रहे हैं। बदसूरत कामकाज के रूप में, आप अस्थायी रूप से इस 'ऐप: rectLayout =" @ लेआउट/round_activity_my' " जैसे अपने राउंड लेआउट को सेट कर सकते हैं और यह आपके राउंड लेआउट को यह सोचने के लिए चलाएगा कि इसे एक रेक्ट एक के रूप में प्रदान किया गया है ... –

+0

I इस बेहद "सस्ते" के आसपास काम कर रहे हैं। मेरा कोड रेक्ट के लिए अच्छा है, इसलिए मैंने प्रतिबद्ध होने के बाद, मैं राउंड लेआउट स्टाइल कोड के साथ अपने रेक्ट लेआउट को ओवरराइट कर रहा हूं, और एक बार जब मैं खुश हूं, तो मैं अपने राउंड लेआउट कोड को वास्तविक round_layout_activity में कॉपी और पेस्ट करता हूं और संशोधित rect_layout फ़ाइल को वापस करें। Blah ... –

उत्तर

1

वहाँ लेआउट कि सही ढंग से WatchViewStub का उपयोग नहीं के कारण होता है बढ़ा-चढ़ाकर साथ कई समस्याएं हैं। मैं किसी भी कोड वास्तव में पता करने के लिए नहीं दिख रहा है, लेकिन एक आम मुद्दा है जब आप घड़ी सन्निवेश के लिए एक श्रोता रजिस्टर ताकि आप जाँच कर सकते हैं अगर यह आपके onApplyWindowInsets हैंडलर के अंदर गोल या चौकोर है:

final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub); 
    stub.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() { 
     @Override 
     public WindowInsets onApplyWindowInsets(View view, WindowInsets windowInsets) { 
      // Need to also call the original insets since we have overridden the original             
      // https://developer.android.com/reference/android/view/View.OnApplyWindowInsetsListener.html         
      stub.onApplyWindowInsets(windowInsets); 

      // this is where you would check the WindowInsets for isRound() 

      return windowInsets; 
     } 
    }); 

मैं ऐसे मामलों में जहां देखना लोग विंडो इन्सेट्स को वापस करना भूल जाते हैं, या stub.onApplyWindowInsets() को कॉल करना भूल जाते हैं। इसका एक गोल लेआउट के बजाय स्क्वायर लेआउट देने का असर पड़ता है।

इसके अलावा, एसडीके में निर्मित एंड्रॉइडवायरराउंड एमुलेटर के साथ एक बग था। उनमें से तीन थे, और यदि आपने गलत बनाया है, तो यह वास्तव में एक वर्ग एमुलेटर बना देगा। सुनिश्चित करें कि आपके पास तीन अनुकरणकर्ता हैं, तो आप दूसरा एक चुनते हैं। यह बग नवीनतम एंड्रॉइड एसडीके टूल्स 23.0.4 में तय किया गया है, लेकिन हो सकता है कि आपके पास पुराना संस्करण हो।

क्या आप हमें वॉचव्यूस्ट्यूब के आसपास जो कोड कर रहे हैं उसे दिखा सकते हैं?

0

एक आसान फिक्स वेयर राउंड एमुलेटर को एपीआई लेवल 22 में अपग्रेड करना है, जो अब बाहर है। मुझे सामान्य रूप से एपीआई स्तर 21 में पहनने वाले गोल एमुलेटर मिला है, जिसमें कुछ छोटी गाड़ी का व्यवहार है, जबकि अब तक एपीआई स्तर 22 में राउंड एमुलेटर के साथ कोई समस्या नहीं मिली है। मुझे लगता है कि यह इस मुद्दे को ठीक करेगा, क्योंकि मुझे एक ही समस्या थी खुद को किसी बिंदु पर (और यह एमुलेटर की सेटअप समस्या नहीं थी)।

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