xuexiangjys / XUI

💍A simple and elegant Android native UI framework, free your hands! (一个简洁而优雅的Android原生UI框架,解放你的双手!)

Home Page:https://xuexiangjys.github.io/XUI/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

好像不支持 NavController

GordonHuangYong opened this issue · comments

问题描述(必填)

 AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
                R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications)
                .build();
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_activity_main);
        NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
        NavigationUI.setupWithNavController(binding.navView, navController);

使用的XUI版本(必填)

    //androidx项目
    implementation 'com.github.xuexiangjys:XUI:1.2.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'androidx.recyclerview:recyclerview:1.2.1'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'com.github.bumptech.glide:glide:4.12.0'

如何重现(必填)
运行崩溃

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.waytronic.wt_nfc_app/com.waytronic.wt_nfc_app.MainActivity}: java.lang.IllegalStateException: Activity com.waytronic.wt_nfc_app.MainActivity@7f7423d does not have an ActionBar set via setSupportActionBar()
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3778)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3952)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:107)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2286)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loopOnce(Looper.java:211)
        at android.os.Looper.loop(Looper.java:300)
        at android.app.ActivityThread.main(ActivityThread.java:8243)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
     Caused by: java.lang.IllegalStateException: Activity com.waytronic.wt_nfc_app.MainActivity@7f7423d does not have an ActionBar set via setSupportActionBar()
        at androidx.navigation.ui.ActionBarOnDestinationChangedListener.setTitle(ActionBarOnDestinationChangedListener.kt:40)
        at androidx.navigation.ui.AbstractAppBarOnDestinationChangedListener.onDestinationChanged(AbstractAppBarOnDestinationChangedListener.kt:87)
        at androidx.navigation.NavController.addOnDestinationChangedListener(NavController.kt:403)
        at androidx.navigation.ui.NavigationUI.setupActionBarWithNavController(NavigationUI.kt:284)
        at com.waytronic.wt_nfc_app.MainActivity.onCreate(MainActivity.java:35)
        at android.app.Activity.performCreate(Activity.java:8294)
        at android.app.Activity.performCreate(Activity.java:8258)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3758)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3952) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:107) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2286) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loopOnce(Looper.java:211) 
        at android.os.Looper.loop(Looper.java:300) 
        at android.app.ActivityThread.main(ActivityThread.java:8243) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049) 

Navigation是页面框架,XUI是UI框架,不存在支不支持,两者本就没有任何冲突。你这里报错是因为用到了ActionBar,麻烦多看看报错日志。

XUI 默认的主题就是没有ActionBar的,你要是想用ActionBar,请更换有ActionBar的主题,或者自己在布局中增加ActionBar。