0

I'm using emoji_picker_flutter package to show emoji_Keyboard,In MaterialApp this package is working fine, But In CupertinoApp if i try to display emoji_Keyboard..

----> it is showing Error Like this:-

The following assertion was thrown building Expanded(flex: 1):
No Material widget found.

TabBar widgets require a Material widget ancestor.
In Material Design, most widgets are conceptually "printed" on a sheet of material. In Flutter's material library, that material is represented by the Material widget. It is the Material widget that renders ink splashes, for instance. Because of this, many material library widgets require that there be a Material widget in the tree above them.

To introduce a Material widget, you can either directly include one, or use a widget that contains Material itself, such as a Card, Dialog, Drawer, or Scaffold.

The specific widget that could not find a Material ancestor was: TabBar
  dirty
  state: _TabBarState#7a158(lifecycle state: initialized)
The ancestors of this widget were: 
  : EmojiPicker
    state: EmojiPickerState#41b15
  : SizedBox
    height: 250.0
    renderObject: RenderConstrainedBox#41032 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
  : Offstage
    offstage: false
    renderObject: RenderOffstage#75a19 relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
  : Column
    direction: vertical
    mainAxisAlignment: center
    crossAxisAlignment: center
    renderObject: RenderFlex#86b9d NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
  : ExampleWidget
    state: _ExampleWidgetState#33774
  : CupertinoApp
    state: _CupertinoAppState#a8056
  : MyApp
  ...
The relevant error-causing widget was: 
  EmojiPicker EmojiPicker:file:///D:/emoji_picker_fluttertest/lib/main.dart:85:22
When the exception was thrown, this was the stack: 
#0      debugCheckHasMaterial.<anonymous closure> (package:flutter/src/material/debug.dart:29:7)
#1      debugCheckHasMaterial (package:flutter/src/material/debug.dart:50:4)
#2      _TabBarState.didChangeDependencies (package:flutter/src/material/tabs.dart:1013:12)
#3      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5036:11)
#4      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853:5)
...     Normal element mounting (4 frames)
#8      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863:16)
#9      Element.updateChild (package:flutter/src/widgets/framework.dart:3586:20)
#10     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#11     Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#12     ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#13     Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#14     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5904:32)
#15     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6460:17)
#16     Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#17     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5904:32)
#18     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6460:17)
#19     Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#20     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#21     Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#22     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#23     Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#24     StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#25     Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#26     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#27     Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#28     StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#29     Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#30     _LayoutBuilderElement._layout.layoutCallback (package:flutter/src/widgets/layout_builder.dart:135:18)
#31     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2605:19)
#32     _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:153:12)
#33     RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2246:59)
#34     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1035:15)
#35     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2246:14)
#36     RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:228:7)
#37     _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:316:5)
#38     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#39     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#40     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:292:14)
#41     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#42     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#43     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#44     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3737:13)
#45     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#46     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#47     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
#48     RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:836:43)
#49     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:938:32)
#50     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#51     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#52     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#53     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#54     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#55     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#56     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#57     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#58     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#59     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#60     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#61     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
#62     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595:43)
#63     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622:12)
#64     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#65     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#66     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#67     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#68     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#69     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#70     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#71     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#72     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#73     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#74     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#75     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#76     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#77     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#78     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#79     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#80     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#81     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#82     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#83     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#84     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#85     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3737:13)
#86     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#87     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#88     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#89     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#90     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#91     _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:804:15)
#92     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#93     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#94     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#95     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#96     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#97     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#98     RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#99     RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#100    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#101    RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#102    RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#103    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#104    RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:552:11)
#105    RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#106    RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#107    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#108    RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#109    RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#110    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#111    RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#112    RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#113    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#114    RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#115    RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#116    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:120:14)
#117    RenderObject.layout (package:flutter/src/rendering/object.dart:2135:7)
#118    RenderBox.layout (package:flutter/src/rendering/box.dart:2418:11)
#119    RenderView.performLayout (package:flutter/src/rendering/view.dart:170:14)
#120    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1973:7)
#121    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:999:18)
#122    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:513:19)
#123    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:884:13)
#124    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:378:5)
#125    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1175:15)
#126    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1104:9)
#127    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:881:7)
(elided 4 frames from class _RawReceivePortImpl, class _Timer, and dart:async-patch)
====================================================================================================

======== Exception caught by rendering library =====================================================
The following assertion was thrown during layout:
A RenderFlex overflowed by 99750 pixels on the bottom.

The relevant error-causing widget was: 
  EmojiPicker EmojiPicker:file:///D:/emoji_picker_fluttertest/lib/main.dart:85:22
The overflowing RenderFlex has an orientation of Axis.vertical.
The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and black striped pattern. This is usually caused by the contents being too big for the RenderFlex.

Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the RenderFlex to fit within the available space instead of being sized to their natural size.
This is considered an error condition because it indicates that there is content that cannot be seen. If the content is legitimately bigger than the available space, consider clipping it with a ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex, like a ListView.

The specific RenderFlex in question is: RenderFlex#72463 relayoutBoundary=up5 OVERFLOWING
...  needs compositing
...  parentData: <none> (can use size)
...  constraints: BoxConstraints(0.0<=w<=392.7, h=250.0)
...  size: Size(392.7, 250.0)
...  direction: vertical
...  mainAxisAlignment: start
...  mainAxisSize: max
...  crossAxisAlignment: center
...  verticalDirection: down

this is code for i tried to display emoji_keyword in CupertinoApp flutter

Expecting to show :- If we click ant_circle CupertinoButton,it needs to show Emoji_Keyboard..

Hello. This is code

import 'package:emoji_picker_flutter/emoji_picker_flutter.dart';
import 'package:flutter/cupertino.dart';

void main() {
runApp(MyApp());
}

class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return CupertinoApp(
title: 'Flutter Demo',
home: ExampleWidget(),
);
}
}

class ExampleWidget extends StatefulWidget {
ExampleWidget({Key? key}) : super(key: key);

@override
\_ExampleWidgetState createState() =\> \_ExampleWidgetState();
}

/// State for \[ExampleWidget\] widgets.
class \_ExampleWidgetState extends State\<ExampleWidget\> {
final TextEditingController \_controller = TextEditingController();
bool emojiShowing = false;

@override
void dispose() {
\_controller.dispose();
super.dispose();
}

@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: \<Widget\>\[
const Spacer(),
Container(
height: 66.0,
color: CupertinoColors.activeBlue,
child: Row(
children: \[
CupertinoButton(
onPressed: () {
setState(() {
emojiShowing = !emojiShowing;
});
},
child: const Icon(
CupertinoIcons.ant_circle,
color: CupertinoColors.white,
),
),
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0),
child: CupertinoTextField(
controller: \_controller,
style: const TextStyle(
fontSize: 20.0, color: CupertinoColors.white),
),
),
),
CupertinoButton(
onPressed: () {
// send message
},
child: const Icon(
CupertinoIcons.paperplane_fill,
color: CupertinoColors.white,
),
),
\],
)),
Offstage(
offstage: !emojiShowing,
child: SizedBox(
height: 250,
child: EmojiPicker(
textEditingController: \_controller,
config: const Config(
columns: 7,
// Issue: https://github.com/flutter/flutter/issues/28894
verticalSpacing: 0,
horizontalSpacing: 0,
gridPadding: EdgeInsets.zero,
initCategory: Category.RECENT,
bgColor: Color(0xFFF2F2F2),
indicatorColor: CupertinoColors.activeBlue,
iconColor: CupertinoColors.inactiveGray,
iconColorSelected: CupertinoColors.activeBlue,
backspaceColor: CupertinoColors.activeBlue,
skinToneDialogBgColor: CupertinoColors.white,
skinToneIndicatorColor: CupertinoColors.inactiveGray,
enableSkinTones: true,
showRecentsTab: true,
recentsLimit: 28,
replaceEmojiOnLimitExceed: false,
noRecents: Text(
'No Recents',
style:
TextStyle(fontSize: 20, color: CupertinoColors.black),
textAlign: TextAlign.center,
),
loadingIndicator: SizedBox.shrink(),
categoryIcons: CategoryIcons(),
buttonMode: ButtonMode.CUPERTINO,
checkPlatformCompatibility: true,
),
)),
),
\],
);
}
}

1 Answers1

0

you have set the a TabBar in a place that hove no material ancestor

the scaffold is counted as a Material ancestor so, navigating to a screen without a Material ancestor doesn't let you use Material-specific widgets.

There are 2 solutions: 1st: : wrap the TabBar widget causing this problem with the Material widget like this :

Material(
 child: TabBar(
   /* code*/
 ),
)

2nd:

wrap the whole screen where the TabBar is there with a normal Scaffold :

Scaffold(
 body: YourScreenWhereTHeTabBarIs(),
 )
Gwhyyy
  • 7,554
  • 3
  • 8
  • 35
  • thanks for the answer man!!!!. but both solution's not working... answer is in CupertinoApp i added localizationsDelegates: [ DefaultMaterialLocalizations.delegate, DefaultCupertinoLocalizations.delegate, DefaultWidgetsLocalizations.delegate, ], then emoji keyboard is showing – Vignesh S Oct 28 '22 at 14:02
  • Oh, great, then there is no need for this answer – Gwhyyy Oct 28 '22 at 14:09