I need to create a GWT Custom Widget. This widget will contain a panel and that widget must grow in height based on the amount of text in the panel
Edit:
for e.g. let's say a widget will hold a forum post. What happens is that there is a panel inside the widget that hold the forum post. The more text text, the greater the panel??
Any idea??
If you put a Label in a FlowPanel, the whole thing will size itself to contain whatever text you put in the Label. Most GWT widgets will do that as long as you don't set an explicit size.
Once you start setting the size (e.g. "height: 100px") yourself, then you have to start re-calculating the size yourself. So... don't set the size yourself! :)
Related
I'd like to add a custom showMore widget if the skills widget which has a dynamic size(width) exceeds the screen width. On clicking the showMore widget it should show all the skills in a wrap .else show less.
In flutter
Constraints go down and sizes go up
See this documentation.
Flutter uses a single pass algorithm to render your application. This is a technical choice to ensure performance but it comes with limitations.
One of them is that, when you are building the widget tree, you only have access to the constraints of the parent, and not any size of any widget (since they are not rendered yet).
So a short answer to your question is:
No, you cannot do what you are trying to do (displaying something if some widgets are not fitting on the screen) since you don't have access to any sizes in the build method.
An alternative solution would be to use Wrap to wrap your chips or use a ListView on the horizontal axis to make the list of chips horizontally scrollable.
Anyway, if you really want to do this, you can hardcode the sizes of your chip and access the device size with MediaQuery.of(context).size or by using the LayoutBuilder and using contraints.maxWidth as the parent's width. Then you can check whether or not numberOfChips * chipSize <= maxWidth. But I wouldn't recommend it as the design wouldn't be responsive:
All the chips will have the same size, so you'll end up with a big chip for "c" and maybe a long name like "python" won't fit in and you'll end up with overflow issues.
What if the user changes the font size of his device? You will also end up with overflow issues.
Google Play warns me about missing Content labeling under Accessibility tests for every page the crawler can reach.
I've tried to add a Semantics Widget to every page to surround the body element of the scaffold, I've even added an Extra Container as the first child of this Semantics widget with double.infinity as width and height.
The only other thing I can think of doing is to make it the parent of the Scaffold - but what is the correct solution?
Somewhat related: Should SafeArea be the parent or the body element of the Scaffold?
Concerning the placement of the safearea, you should always put your scaffold first. In other words, wrap the safearea with the scaffold. The content label error from play console can also be solved by specifying information such as hint text in input fields or labels for buttons where necessary.
Im trying to make an new app, and i want to display a row like this
i dont understand the concept behind it, like how can he divide the box into two type of colors, and how can the shape of the box looks like that. anyone that can teach me i will appriciated it.
This is not exactly a simple UI layout to create if you are just starting out with Flutter.
Simply put, you have to have a Row containing copies of a widget you create yourself as a stateless widget. The widget tree would look something like this.
Row
CustomWidget
CustomWidget
...
The CustomWidget is the complex part, this is a simplified example of how the Widget tree of this widget could look. Create a stateless widget and try to create it yourself.
Card
Column
Container
Row
Icon
Text
Container
Align
Text
Note you will have to set the color property of the Card and Container widgets, and add some padding certain places in the widget tree. Plus, the last container will need a width property as well.
If you need more help - show what you have attempted with code (edit your question)
Hope this helps!
I am implementing a custom Gtk# widget which is based on Gtk.EventBox. When I am inserting it into the HBox or VBox it occupies the exact size that is returned by OnSizeRequested method.
How can I make my widget to occupy all the space given to it by the parent box, window or the widget? Just like HBox does.
There is a slight different between the preferred way to do packing in GTK+2 vs GTK+3. With GTK+ you would typically use expand and fill properties of a GtkBox to control how space is allocated. With GTK+3 they are suggesting the user of vertical-expand, horizontal-expand, vertical-fill, horizontal-fill.
A good way to understand how packing works is to play with the fill and expand properties with Glade so you can see the effects in real time. An old tutorial (slightly out of date) shows some screenshots of different packing properties: How_Packing_Effects_the_Layout
As you are developing a widget it is more likely that users of your widget will determine how it should be packed in a larger UI. However, if you're widget is a composite widget (built from other widgets) then you will need to pack the other widgets properly.
PackStart and PackEnd have a fill parameter to specify items that should expand to fill the box. You probably want PackStart(widget, true, true, 0);
i created a widget, say MyBox, which has many other widgets. i have to use that widget on different page, however on different page, the size of the widget is different, on some page it's smaller, on other page it's bigger. Just wonder is there any way in GWT to zoom in & out the widget? Thanks
You can set the width and height of a widget, and the normal kinds of "zooming" that happen with HTML will happen to your widget too. If you want inner widgets to resize automatically, check out Layout Panels in GWT 2.0 and later.