Skip to content
This repository has been archived by the owner on Apr 29, 2021. It is now read-only.

Is it possible to add another package of pub.dev to use it? #454

Open
pallenJ opened this issue Feb 5, 2021 · 4 comments
Open

Is it possible to add another package of pub.dev to use it? #454

pallenJ opened this issue Feb 5, 2021 · 4 comments

Comments

@pallenJ
Copy link

pallenJ commented Feb 5, 2021

I'm curious how to do it if possible.
Thank you

@kuro7766
Copy link

Probably not.
As the document said,this package is not another copy of flutter. It has different implementations.

@pallenJ
Copy link
Author

pallenJ commented Feb 15, 2021

Thank you for answer.
By the way, I've been struggling with a Dialog issue for a week now. Could you please tell me what the problem is?

My source code

using Unity.UIWidgets.engine;
using Unity.UIWidgets.material;
using Unity.UIWidgets.painting;
using Unity.UIWidgets.ui;
using Unity.UIWidgets.widgets;
using UnityEngine;
using System;
using System.Collections.Generic;


public class GalleryEX : UIWidgetsPanel
{
    protected override Widget createWidget()
    {

        return new MyGallery(

            );
    }

    protected override void OnEnable()
    {
        FontManager.instance.addFont(Resources.Load<Font>("MaterialIcons-Regular"), "Material Icons");
        FontManager.instance.addFont(Resources.Load<Font>("GalleryIcons"), "GalleryIcons");

        FontManager.instance.addFont(Resources.Load<Font>("CupertinoIcons"), "CupertinoIcons");
        FontManager.instance.addFont(Resources.Load<Font>(path: "SF-Pro-Text-Regular"), ".SF Pro Text", FontWeight.w400);
        FontManager.instance.addFont(Resources.Load<Font>(path: "SF-Pro-Text-Semibold"), ".SF Pro Text", FontWeight.w600);
        FontManager.instance.addFont(Resources.Load<Font>(path: "SF-Pro-Text-Bold"), ".SF Pro Text", FontWeight.w700);

        base.OnEnable();
    }

}

class MyGallery : StatefulWidget
{

    public override State createState()
    {
        return new _MyGalleryState();
    }
}

class _MyGalleryState : State<MyGallery>
{

    Unity.UIWidgets.ui.Color pColor = Colors.blueAccent;
    int _idx = 0;
    List<string> menuList = new List<string> { "메인", "측정일지", "메뉴", "커뮤니티", "프리미엄" };

    List<Widget> pageList = new List<Widget>
    {
         new ListView(
             padding: EdgeInsets.all(20)

                )
        ,
    };

    public override Widget build(BuildContext context)
    {
        TextStyle _normalSt = new TextStyle(color: Colors.grey);

        Widget home = new Scaffold(

            appBar: new AppBar(
                backgroundColor: pColor
                , title: new Text(menuList[_idx]
                , style: new TextStyle(color: Colors.white)

                    )
                , centerTitle: true
                , leading: new BackButton(color: Colors.white)
                , actions: new List<Widget>
                {
                   new IconButton(icon: new Icon(icon:Icons.menu, color:Colors.white))
                }
                )
            , body: new Column(
                children: new List<Widget>{

                  new RaisedButton(
                   child: new Text("Select Date"),
                   onPressed: ()=>{
                       Debug.Log("aaa");
                       /*Unity.UIWidgets.material.DialogUtils.showDialog(context:context , builder: (_context)=>
                       {
                           return  new AlertDialog(
                             actions: new List<Widget>
                                {
                                      new FlatButton(child: new Text("Close"),
                                        onPressed: ()=>{
                                            Navigator.pop(_context);
                                        }
                                      )
                                 }
                            );
                       }
                       );*/
                       /*DatePickerUtils.showDatePicker(
                       context:context,
                       initialDate:DateTime.Now,
                       firstDate:new DateTime(2020),
                       lastDate:new DateTime(2030),
                       selectableDayPredicate: _decideWhichDayToEnable
                        )*/;
                       Navigator.of(context);
                        Unity.UIWidgets.material.DialogUtils.showDialog(context:context, builder:(_context)=>{
                         return  new  AlertDialog();
                       }
                           
                           
                           ).Then((p)=>{Debug.Log("das"); });
                   }

                  )
                  

                 

                }

                )


     , bottomNavigationBar: new BottomNavigationBar(
         selectedItemColor: pColor,
         onTap: (index) =>
         {
             setState(() =>
             {
                 _idx = index;
                 Debug.Log(_idx);

             });

         }
         , currentIndex: _idx
         ,
         items:
         new List<BottomNavigationBarItem>()
         {
             new BottomNavigationBarItem(icon: new Icon(icon: Icons.home, color: Colors.grey) ,title: new Text("Home" , style: _normalSt), activeIcon:new Icon(icon: Icons.home, color: pColor)),
             new BottomNavigationBarItem(icon: new Icon(icon: Icons.book, color: Colors.grey) ,title: new Text("Diary" , style: _normalSt), activeIcon:new Icon(icon: Icons.book, color: pColor)),
             new BottomNavigationBarItem(icon: new Icon(icon: Icons.check, color: Colors.grey) ,title: new Text("Menu" , style: _normalSt), activeIcon:new Icon(icon: Icons.check, color: pColor)),
             new BottomNavigationBarItem(icon: new Icon(icon: Icons.sms, color: Colors.grey) ,title: new Text("SNS", style: _normalSt), activeIcon:new Icon(icon: Icons.sms, color: pColor)),
             new BottomNavigationBarItem(icon: new Icon(icon: Icons.chat, color: Colors.grey) ,title: new Text("Premium" , style: _normalSt), activeIcon:new Icon(icon: Icons.chat, color: pColor)),

         }
         // , type:BottomNavigationBarType.fix

         )
            );
        return new MaterialApp(
                home: home
        );
    }

    bool _decideWhichDayToEnable(DateTime day)
    {
        if ((day-DateTime.Now).TotalDays>0 &&
            (DateTime.Now-day).TotalDays>10)
        {
            return true;
        }
        return false;
    }


    public override void initState()
    {
        base.initState();
    }

    public override void dispose()
    {
        base.dispose();
    }



}

Error Message

AssertionError: Error caught by gesture, thrown while handling a gesture. Object reference not set to an instance of an object
Handler: onTap
Recognizer:
  Unity.UIWidgets.gestures.TapGestureRecognizer#E6C00
  at Unity.UIWidgets.widgets.DialogUtils.showGeneralDialog (Unity.UIWidgets.widgets.BuildContext context, Unity.UIWidgets.widgets.RoutePageBuilder pageBuilder, System.Boolean barrierDismissible, Unity.UIWidgets.ui.Color barrierColor, System.Nullable`1[T] transitionDuration, Unity.UIWidgets.widgets.RouteTransitionsBuilder transitionBuilder) [0x00001] in D:\study\App_Practice\Assets\UIWidgets\Runtime\widgets\routes.cs:822 
  at Unity.UIWidgets.material.DialogUtils.showDialog (Unity.UIWidgets.widgets.BuildContext context, System.Boolean barrierDismissible, Unity.UIWidgets.widgets.WidgetBuilder builder) [0x0001b] in D:\study\App_Practice\Assets\UIWidgets\Runtime\material\dialog.cs:296 
  at _MyGalleryState+<>c__DisplayClass4_0.<build>b__0 () [0x0001b] in D:\study\App_Practice\Assets\Script\GalleryEX.cs:114 
  at Unity.UIWidgets.material._RawMaterialButtonState.<build>b__3_0 () [0x00014] in D:\study\App_Practice\Assets\UIWidgets\Runtime\material\button.cs:148 
  at Unity.UIWidgets.material._InkResponseState`1[T]._handleTap (Unity.UIWidgets.widgets.BuildContext context) [0x0003a] in D:\study\App_Practice\Assets\UIWidgets\Runtime\material\ink_well.cs:282 
  at Unity.UIWidgets.material._InkResponseState`1+<>c__DisplayClass14_0[T].<build>b__0 () [0x00000] in D:\study\App_Practice\Assets\UIWidgets\Runtime\material\ink_well.cs:346 
  at Unity.UIWidgets.gestures.TapGestureRecognizer.<_checkUp>b__14_1 () [0x00001] in D:\study\App_Practice\Assets\UIWidgets\Runtime\gestures\tap.cs:132 
  at Unity.UIWidgets.gestures.GestureRecognizer.invokeCallback[T] (System.String name, Unity.UIWidgets.gestures.RecognizerCallback`1[T] callback, System.Func`1[TResult] debugReport) [0x0001e] in D:\study\App_Practice\Assets\UIWidgets\Runtime\gestures\recognizer.cs:70
Unity.UIWidgets.widgets.DialogUtils.showGeneralDialog (Unity.UIWidgets.widgets.BuildContext context, Unity.UIWidgets.widgets.RoutePageBuilder pageBuilder, System.Boolean barrierDismissible, Unity.UIWidgets.ui.Color barrierColor, System.Nullable`1[T] transitionDuration, Unity.UIWidgets.widgets.RouteTransitionsBuilder transitionBuilder) (at Assets/UIWidgets/Runtime/widgets/routes.cs:822)
Unity.UIWidgets.material.DialogUtils.showDialog (Unity.UIWidgets.widgets.BuildContext context, System.Boolean barrierDismissible, Unity.UIWidgets.widgets.WidgetBuilder builder) (at Assets/UIWidgets/Runtime/material/dialog.cs:296)
_MyGalleryState+<>c__DisplayClass4_0.<build>b__0 () (at Assets/Script/GalleryEX.cs:114)
Unity.UIWidgets.material._RawMaterialButtonState.<build>b__3_0 () (at Assets/UIWidgets/Runtime/material/button.cs:148)
Unity.UIWidgets.material._InkResponseState`1[T]._handleTap (Unity.UIWidgets.widgets.BuildContext context) (at Assets/UIWidgets/Runtime/material/ink_well.cs:282)
Unity.UIWidgets.material._InkResponseState`1+<>c__DisplayClass14_0[T].<build>b__0 () (at Assets/UIWidgets/Runtime/material/ink_well.cs:346)
Unity.UIWidgets.gestures.TapGestureRecognizer.<_checkUp>b__14_1 () (at Assets/UIWidgets/Runtime/gestures/tap.cs:132)
Unity.UIWidgets.gestures.GestureRecognizer.invokeCallback[T] (System.String name, Unity.UIWidgets.gestures.RecognizerCallback`1[T] callback, System.Func`1[TResult] debugReport) (at Assets/UIWidgets/Runtime/gestures/recognizer.cs:70)
UnityEngine.Debug:LogException(Exception)
Unity.UIWidgets.foundation.D:logError(String, Exception) (at Assets/UIWidgets/Runtime/foundation/debug.cs:15)
Unity.UIWidgets.foundation.UIWidgetsError:dumpErrorToConsole(UIWidgetsErrorDetails, Boolean) (at Assets/UIWidgets/Runtime/foundation/assertions.cs:120)
Unity.UIWidgets.foundation.UIWidgetsError:dumpErrorToConsole(UIWidgetsErrorDetails) (at Assets/UIWidgets/Runtime/foundation/assertions.cs:105)
Unity.UIWidgets.foundation.UIWidgetsError:reportError(UIWidgetsErrorDetails) (at Assets/UIWidgets/Runtime/foundation/assertions.cs:131)
Unity.UIWidgets.gestures.GestureRecognizer:invokeCallback(String, RecognizerCallback`1, Func`1) (at Assets/UIWidgets/Runtime/gestures/recognizer.cs:73)
Unity.UIWidgets.gestures.TapGestureRecognizer:_checkUp() (at Assets/UIWidgets/Runtime/gestures/tap.cs:131)
Unity.UIWidgets.gestures.TapGestureRecognizer:handlePrimaryPointer(PointerEvent) (at Assets/UIWidgets/Runtime/gestures/tap.cs:53)
Unity.UIWidgets.gestures.PrimaryPointerGestureRecognizer:handleEvent(PointerEvent) (at Assets/UIWidgets/Runtime/gestures/recognizer.cs:262)
Unity.UIWidgets.gestures.PointerRouter:_dispatch(PointerEvent, PointerRoute) (at Assets/UIWidgets/Runtime/gestures/pointer_router.cs:47)
Unity.UIWidgets.gestures.PointerRouter:route(PointerEvent) (at Assets/UIWidgets/Runtime/gestures/pointer_router.cs:60)
Unity.UIWidgets.gestures.GestureBinding:handleEvent(PointerEvent, HitTestEntry) (at Assets/UIWidgets/Runtime/gestures/binding.cs:161)
Unity.UIWidgets.gestures.GestureBinding:dispatchEvent(PointerEvent, HitTestResult) (at Assets/UIWidgets/Runtime/gestures/binding.cs:152)
Unity.UIWidgets.gestures.GestureBinding:_handlePointerEvent(PointerEvent) (at Assets/UIWidgets/Runtime/gestures/binding.cs:106)
Unity.UIWidgets.gestures.GestureBinding:_flushPointerEventQueue() (at Assets/UIWidgets/Runtime/gestures/binding.cs:43)
Unity.UIWidgets.gestures.GestureBinding:_handlePointerDataPacket(PointerDataPacket) (at Assets/UIWidgets/Runtime/gestures/binding.cs:29)
Unity.UIWidgets.editor.<>c__DisplayClass32_0:<postPointerEvents>b__0() (at Assets/UIWidgets/Runtime/editor/editor_window.cs:250)
Unity.UIWidgets.editor.WindowAdapter:withBinding(Action) (at Assets/UIWidgets/Runtime/editor/editor_window.cs:259)
Unity.UIWidgets.editor.WindowAdapter:postPointerEvents(List`1) (at Assets/UIWidgets/Runtime/editor/editor_window.cs:250)
Unity.UIWidgets.editor.WindowAdapter:postPointerEvent(PointerData) (at Assets/UIWidgets/Runtime/editor/editor_window.cs:254)
Unity.UIWidgets.engine.UIWidgetsPanel:OnPointerUp(PointerEventData) (at Assets/UIWidgets/Runtime/engine/UIWidgetsPanel.cs:293)
UnityEngine.EventSystems.EventSystem:Update() (at C:/Program Files/Unity/Hub/Editor/2019.2.18f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:377)

@kuro7766
Copy link

I think it's because you have used material widgets in your code, so you need to wrap your app in a material app.This solution also applies to flutter.
I removed your font resources loading and changed your source code to this

source code

using Unity.UIWidgets.engine;
using Unity.UIWidgets.material;
using Unity.UIWidgets.painting;
using Unity.UIWidgets.ui;
using Unity.UIWidgets.widgets;
using UnityEngine;
using System;
using System.Collections.Generic;
using DialogUtils = Unity.UIWidgets.material.DialogUtils;

public class GalleryEX : UIWidgetsPanel
{
    protected override Widget createWidget()
    {
        return new
            MaterialApp(home: new MyGallery(
            ));
    }
}

class MyGallery : StatefulWidget
{
    public override State createState()
    {
        return new _MyGalleryState();
    }
}

class _MyGalleryState : State<MyGallery>
{
    Unity.UIWidgets.ui.Color pColor = Colors.blueAccent;
    int _idx = 0;
    List<string> menuList = new List<string> {"메인", "측정일지", "메뉴", "커뮤니티", "프리미엄"};

    List<Widget> pageList = new List<Widget>
    {
        new ListView(
            padding: EdgeInsets.all(20)
        ),
    };

    public override Widget build(BuildContext context)
    {
        TextStyle _normalSt = new TextStyle(color: Colors.grey);
        Widget home = new Scaffold(
            appBar: new AppBar(
                backgroundColor: pColor
                , title: new Text(menuList[_idx]
                    , style: new TextStyle(color: Colors.white)
                )
                , centerTitle: true
                , leading: new BackButton(color: Colors.white)
                , actions: new List<Widget>
                {
                    new IconButton(icon: new Icon(icon: Icons.menu, color: Colors.white))
                }
            )
            , body: new Column(
                children: new List<Widget>
                {
                    new RaisedButton(
                        child: new Text("Select Date"),
                        onPressed: () =>
                        {
                            Debug.Log("aaa");
                            /*Unity.UIWidgets.material.DialogUtils.showDialog(context:context , builder: (_context)=>
                            {
                                return  new AlertDialog(
                                  actions: new List<Widget>
                                     {
                                           new FlatButton(child: new Text("Close"),
                                             onPressed: ()=>{
                                                 Navigator.pop(_context);
                                             }
                                           )
                                      }
                                 );
                            }
                            );*/
                            /*DatePickerUtils.showDatePicker(
                            context:context,
                            initialDate:DateTime.Now,
                            firstDate:new DateTime(2020),
                            lastDate:new DateTime(2030),
                            selectableDayPredicate: _decideWhichDayToEnable
                             )*/
                            ;
                            Navigator.of(context);
                            DialogUtils.showDialog(context:
                                context,
                                builder: (
                                    _context) =>
                                {
                                    return new Scaffold(backgroundColor: Colors.transparent,
                                        body: new Text("hello world"));
                                    ;
                                }
                            ).Then((p) => { Debug.Log("das"); });
                        }
                    )
                }
            )
            , bottomNavigationBar: new BottomNavigationBar(
                selectedItemColor: pColor,
                onTap: (index) =>
                {
                    setState(() =>
                    {
                        _idx = index;
                        Debug.Log(_idx);
                    });
                }
                , currentIndex: _idx
                ,
                items:
                new List<BottomNavigationBarItem>()
                {
                    new BottomNavigationBarItem(icon: new Icon(icon: Icons.home, color: Colors.grey),
                        title: new Text("Home", style: _normalSt),
                        activeIcon: new Icon(icon: Icons.home, color: pColor)),
                    new BottomNavigationBarItem(icon: new Icon(icon: Icons.book, color: Colors.grey),
                        title: new Text("Diary", style: _normalSt),
                        activeIcon: new Icon(icon: Icons.book, color: pColor)),
                    new BottomNavigationBarItem(icon: new Icon(icon: Icons.check, color: Colors.grey),
                        title: new Text("Menu", style: _normalSt),
                        activeIcon: new Icon(icon: Icons.check, color: pColor)),
                    new BottomNavigationBarItem(icon: new Icon(icon: Icons.sms, color: Colors.grey),
                        title: new Text("SNS", style: _normalSt), activeIcon: new Icon(icon: Icons.sms, color: pColor)),
                    new BottomNavigationBarItem(icon: new Icon(icon: Icons.chat, color: Colors.grey),
                        title: new Text("Premium", style: _normalSt),
                        activeIcon: new Icon(icon: Icons.chat, color: pColor)),
                }
            )
        );
        return home;
    }

    bool _decideWhichDayToEnable(DateTime day)
    {
        if ((day - DateTime.Now).TotalDays > 0 &&
            (DateTime.Now - day).TotalDays > 10)
        {
            return true;
        }

        return false;
    }

    public override void initState()
    {
        base.initState();
    }

    public override void dispose()
    {
        base.dispose();
    }
}

@pallenJ
Copy link
Author

pallenJ commented Feb 16, 2021

Now it works.
Thank you very much for your kind reply.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants