buildButton method
Implementation
Widget buildButton(
BuildContext context,
ValueNotifier<bool> arrowDownNotifier,
) {
/// local variables
final decoration = BoxDecoration(
color: Colors.transparent,
borderRadius: BorderRadius.circular(35),
);
/// return void container
if (provider.pathList.isEmpty || provider.currentAlbum == null) {
return Container();
}
/// return decorated container without data
if (provider.currentAlbum == null) {
return Container(
padding: const EdgeInsets.symmetric(vertical: 5, horizontal: 10),
decoration: decoration,
);
} else {
/// return list of available albums
return Container(
decoration: decoration,
padding: const EdgeInsets.only(left: 15, bottom: 15),
alignment: Alignment.bottomLeft,
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
/// current album name
SizedBox(
width: MediaQuery.of(context).size.width * 0.28,
child: Text(
provider.currentAlbum!.name,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: appBarTextColor,
fontSize: 18,
letterSpacing: 0.8,
fontWeight: FontWeight.w500),
),
),
const Spacer(),
/// animated arrow icon
Padding(
padding: const EdgeInsets.only(right: 5),
child: AnimatedBuilder(
animation: arrowDownNotifier,
builder: (BuildContext context, child) {
return AnimatedRotation(
duration: const Duration(milliseconds: 300),
turns: arrowDownNotifier.value ? 0.5 : 0,
child: child,
);
},
child: Icon(
Icons.keyboard_arrow_down,
color: appBarIconColor,
),
),
),
],
),
);
}
}