2015-07-28 10 views
5

मैं Google Play जैसे टैब सेट अप करने का प्रयास कर रहा हूं, मैं this guide का पालन कर रहा हूं और सी # में परिवर्तित कर रहा हूं, लेकिन tabLayout.SetupWithViewPager पर कॉल करते समय अपवाद फेंक दिया गया है। गतिविधि के लिए कोड यह है:Xamarin एंड्रॉइड टैबलाउट कॉलिंग सेटअपथ्यूव्यूज़र को अपवाद

public class MainActivity : FragmentActivity 
{ 
    protected override void OnCreate(Bundle bundle) { 
     base.OnCreate(bundle); 
     SetContentView(Resource.Layout.Main); 

     var viewPager = FindViewById<ViewPager>(Resource.Id.viewpager); 
     viewPager.Adapter = new SampleFragmentPagerAdapter(SupportFragmentManager, this); 

     var tabLayout = FindViewById<TabLayout>(Resource.Id.sliding_tabs); 
     tabLayout.SetupWithViewPager(viewPager); 
    } 
} 

अपवाद के लिए स्टैकट्रेस है:

07-28 23:08:39.068 I/MonoDroid(4040): UNHANDLED EXCEPTION: 
07-28 23:08:39.071 I/MonoDroid(4040): Android.Views.InflateException: Exception of type 'Android.Views.InflateException' was thrown. 
07-28 23:08:39.071 I/MonoDroid(4040): at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() <IL 0x00011, 0x0004b> 
07-28 23:08:39.071 I/MonoDroid(4040): at Android.Runtime.JNIEnv.CallVoidMethod (intptr,intptr,Android.Runtime.JValue*) [0x00063] in /Users/builder/data/lanes/1879/5f55a9ef/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:571 
07-28 23:08:39.071 I/MonoDroid(4040): at Android.Support.Design.Widget.TabLayout.SetupWithViewPager (Android.Support.V4.View.ViewPager) <IL 0x00066, 0x001c3> 
07-28 23:08:39.071 I/MonoDroid(4040): at TabTest.MainActivity.OnCreate (Android.OS.Bundle) [0x00040] in E:\VS Projects\TabTest\TabTest\MainActivity.cs:28 
07-28 23:08:39.071 I/MonoDroid(4040): at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) [0x00011] in /Users/builder/data/lanes/1879/5f55a9ef/source/monodroid/src/Mono.Android/platforms/android-21/src/generated/Android.App.Activity.cs:2707 
07-28 23:08:39.071 I/MonoDroid(4040): at (wrapper dynamic-method) object.1f96a184-9cb6-4d05-8516-4c4d2e85d8d7 (intptr,intptr,intptr) <IL 0x00017, 0x00027> 
07-28 23:08:39.071 I/MonoDroid(4040): --- End of managed exception stack trace --- 
07-28 23:08:39.071 I/MonoDroid(4040): android.view.InflateException: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true 
07-28 23:08:39.071 I/MonoDroid(4040): at android.view.LayoutInflater.inflate(LayoutInflater.java:475) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.support.design.widget.TabLayout$TabView.update(TabLayout.java:1196) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.support.design.widget.TabLayout$TabView.<init>(TabLayout.java:1112) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.support.design.widget.TabLayout.createTabView(TabLayout.java:612) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.support.design.widget.TabLayout.addTabView(TabLayout.java:646) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.support.design.widget.TabLayout.addTab(TabLayout.java:345) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.support.design.widget.TabLayout.addTab(TabLayout.java:320) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.support.design.widget.TabLayout.setTabsFromPagerAdapter(TabLayout.java:601) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.support.design.widget.TabLayout.setupWithViewPager(TabLayout.java:575) 
07-28 23:08:39.071 I/MonoDroid(4040): at md5be39043e4dbb7988fedb01f9386df4d7.MainActivity.n_onCreate(Native Method) 
07-28 23:08:39.071 I/MonoDroid(4040): at md5be39043e4dbb7988fedb01f9386df4d7.MainActivity.onCreate(MainActivity.java:28) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.app.Activity.performCreate(Activity.java:5990) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.app.ActivityThread.access$800(ActivityThread.java:151) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.os.Handler.dispatchMessage(Handler.java:102) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.os.Looper.loop(Looper.java:135) 
07-28 23:08:39.071 I/MonoDroid(4040): at android.app.ActivityThread.main(ActivityThread.java:5254) 
07-28 23:08:39.071 I/MonoDroid(4040): at java.lang.reflect.Method.invoke(Native Method) 
07-28 23:08:39.071 I/MonoDroid(4040): at java.lang.reflect.Method.invoke(Method.java:372) 
07-28 23:08:39.071 I/MonoDroid(4040): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
07-28 23:08:39.071 I/MonoDroid(4040): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

मैं का उपयोग नहीं <merge /> कहीं भी तो मुझे लगता है कि यह नियंत्रण से एक के लिए आंतरिक है? मुझे लगता है कि यह एक्समरिन एंड्रॉइड (या मैंने कहीं गलती की है) के साथ एक मुद्दा है क्योंकि ऐसा लगता है कि कई बहुत ही समान जावा कार्यान्वयन हैं जो मुझे लगता है कि ठीक है!

मैंने पूरा नमूना GitHub पर अपलोड किया है।

+0

GitHub पर आपका नमूना को प्रेरित, PageFragment.cs में लाइन 36 बदल रहा है यह VS2013 में निर्माण करने के लिए के बाद, बनाता है और यहाँ ठीक चलाता है। – Cheesebaron

+0

धन्यवाद @ चेसबरन, बस बिन और ओबीजे निर्देशिकाओं को पोंछने के बाद इसे आजमाया और यह अभी भी ठीक काम करता है। – ChrisWay

+0

ठीक है, यह सुनकर खुशी हुई कि यह आपके लिए काम करता है। यदि आपको नई डिज़ाइन सामग्री, टूलबार इत्यादि के लिए अधिक पूर्ण नमूना की आवश्यकता है। Https://github.com/xamarin/monodroid-samples/tree/master/android5.0/Cheesesquare – Cheesebaron

उत्तर

34

बिन और ओबीजे निर्देशिकाओं को समाशोधन के बाद एक प्रेत त्रुटि का बिट अब यह अपेक्षा के अनुसार काम करता है।

+3

धन्यवाद। मैं वही व्यवहार कर रहा था और बिना किसी स्टैकट्रैक के मैं शायद इसे कभी नहीं मिला होता! –

+1

आपने मुझे बहुत समय बचाया, धन्यवाद – Escobar5

+1

आपने मुझे घंटे बचाया .. धन्यवाद .. –

1

मैं परागकोष कारण के लिए एक ही मुद्दा है, अगर आप किसी भी नेस्टेड टुकड़ा शामिल onCreateview (लागू न)

इसलिए यदि आप अपने viewPager अंदर नेस्टेड टुकड़ा शामिल यकीन है कि वे सब सही तरीका

में लागू कर इस मुद्दे को किया जा सकता है

उम्मीद है कि इस किसी भी एक चेहरा एक ही मुद्दा

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