Resolves #348 Glance card improvements

This commit is contained in:
estevez-dev 2019-09-07 16:46:41 +03:00
parent 6650c5c145
commit 37e63637a7
2 changed files with 41 additions and 34 deletions

View File

@ -220,37 +220,49 @@ class CardWidget extends StatelessWidget {
List<Widget> rows = []; List<Widget> rows = [];
rows.add(CardHeaderWidget(name: card.name)); rows.add(CardHeaderWidget(name: card.name));
List<Widget> result = [];
int columnsCount = entitiesToShow.length >= card.columnsCount ? card.columnsCount : entitiesToShow.length; int columnsCount = entitiesToShow.length >= card.columnsCount ? card.columnsCount : entitiesToShow.length;
entitiesToShow.forEach((EntityWrapper entity) {
result.add(
FractionallySizedBox(
widthFactor: 1/columnsCount,
child: EntityModel(
entityWrapper: entity,
child: GlanceEntityContainer(
showName: card.showName,
showState: card.showState,
),
handleTap: true
),
)
);
});
rows.add( rows.add(
Padding( Padding(
padding: EdgeInsets.fromLTRB(0.0, Sizes.rowPadding, 0.0, 2*Sizes.rowPadding), padding: EdgeInsets.only(bottom: Sizes.rowPadding, top: Sizes.rowPadding),
child: Wrap( child: FractionallySizedBox(
//alignment: WrapAlignment.spaceAround, widthFactor: 1,
runSpacing: Sizes.rowPadding*2, child: LayoutBuilder(
children: result, builder: (BuildContext context, BoxConstraints constraints) {
List<Widget> buttons = [];
double buttonWidth = constraints.maxWidth / columnsCount;
entitiesToShow.forEach((EntityWrapper entity) {
buttons.add(
SizedBox(
width: buttonWidth,
child: EntityModel(
entityWrapper: entity,
child: GlanceEntityContainer(
showName: card.showName,
showState: card.showState,
),
handleTap: true
),
)
);
});
return Wrap(
//spacing: 5.0,
//alignment: WrapAlignment.spaceEvenly,
runSpacing: Sizes.rowPadding*2,
children: buttons,
);
}
),
), ),
) )
); );
return Card( return Card(
child: new Column(mainAxisSize: MainAxisSize.min, children: rows) child: Column(
mainAxisSize: MainAxisSize.min,
children: rows
)
); );
} }

View File

@ -39,10 +39,10 @@ class GlanceEntityContainer extends StatelessWidget {
} }
} }
result.add( result.add(
EntityIcon( EntityIcon(
padding: EdgeInsets.all(0.0), padding: EdgeInsets.all(0.0),
size: iconSize, size: iconSize,
) )
); );
if (!nameInTheBottom) { if (!nameInTheBottom) {
if (showState) { if (showState) {
@ -54,14 +54,9 @@ class GlanceEntityContainer extends StatelessWidget {
return Center( return Center(
child: InkResponse( child: InkResponse(
child: ConstrainedBox( child: Column(
constraints: BoxConstraints(minWidth: Sizes.iconSize * 2), mainAxisSize: MainAxisSize.min,
child: Column( children: result,
mainAxisSize: MainAxisSize.min,
//mainAxisAlignment: MainAxisAlignment.start,
//crossAxisAlignment: CrossAxisAlignment.center,
children: result,
),
), ),
onTap: () => entityWrapper.handleTap(), onTap: () => entityWrapper.handleTap(),
onLongPress: () => entityWrapper.handleHold(), onLongPress: () => entityWrapper.handleHold(),