mod: 首页直播&推荐响应式
This commit is contained in:
@ -60,7 +60,8 @@ class VideoCardH extends StatelessWidget {
|
||||
builder: (context, boxConstraints) {
|
||||
double width =
|
||||
(boxConstraints.maxWidth - StyleString.cardSpace * 6) / 2;
|
||||
return SizedBox(
|
||||
return Container(
|
||||
constraints: const BoxConstraints(minHeight: 88),
|
||||
height: width / StyleString.aspectRatio,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
|
@ -78,8 +78,11 @@ class _LivePageState extends State<LivePage> {
|
||||
if (snapshot.connectionState == ConnectionState.done) {
|
||||
Map data = snapshot.data as Map;
|
||||
if (data['status']) {
|
||||
return Obx(() => contentGrid(
|
||||
_liveController, _liveController.liveList));
|
||||
return SliverLayoutBuilder(
|
||||
builder: (context, boxConstraints) {
|
||||
return Obx(() => contentGrid(
|
||||
_liveController, _liveController.liveList));
|
||||
});
|
||||
} else {
|
||||
return HttpError(
|
||||
errMsg: data['msg'],
|
||||
@ -116,6 +119,14 @@ class _LivePageState extends State<LivePage> {
|
||||
}
|
||||
|
||||
Widget contentGrid(ctr, liveList) {
|
||||
double maxWidth = Get.size.width;
|
||||
int baseWidth = 500;
|
||||
int step = 300;
|
||||
int crossAxisCount =
|
||||
maxWidth > baseWidth ? 2 + ((maxWidth - baseWidth) / step).ceil() : 2;
|
||||
if (maxWidth < 300) {
|
||||
crossAxisCount = 1;
|
||||
}
|
||||
return SliverGrid(
|
||||
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
||||
// 行间距
|
||||
@ -123,9 +134,9 @@ class _LivePageState extends State<LivePage> {
|
||||
// 列间距
|
||||
crossAxisSpacing: StyleString.cardSpace + 4,
|
||||
// 列数
|
||||
crossAxisCount: ctr.crossAxisCount,
|
||||
crossAxisCount: crossAxisCount,
|
||||
mainAxisExtent:
|
||||
Get.size.width / ctr.crossAxisCount / StyleString.aspectRatio + 64,
|
||||
Get.size.width / crossAxisCount / StyleString.aspectRatio + 66,
|
||||
),
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
(BuildContext context, int index) {
|
||||
|
@ -84,8 +84,11 @@ class _RcmdPageState extends State<RcmdPage>
|
||||
if (snapshot.connectionState == ConnectionState.done) {
|
||||
Map data = snapshot.data as Map;
|
||||
if (data['status']) {
|
||||
return Obx(() => contentGrid(
|
||||
_rcmdController, _rcmdController.videoList));
|
||||
return SliverLayoutBuilder(
|
||||
builder: (context, boxConstraints) {
|
||||
return Obx(() => contentGrid(
|
||||
_rcmdController, _rcmdController.videoList));
|
||||
});
|
||||
} else {
|
||||
return HttpError(
|
||||
errMsg: data['msg'],
|
||||
@ -121,6 +124,14 @@ class _RcmdPageState extends State<RcmdPage>
|
||||
}
|
||||
|
||||
Widget contentGrid(ctr, videoList) {
|
||||
double maxWidth = Get.size.width;
|
||||
int baseWidth = 500;
|
||||
int step = 300;
|
||||
int crossAxisCount =
|
||||
maxWidth > baseWidth ? 2 + ((maxWidth - baseWidth) / step).ceil() : 2;
|
||||
if (maxWidth < 300) {
|
||||
crossAxisCount = 1;
|
||||
}
|
||||
return SliverGrid(
|
||||
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
||||
// 行间距
|
||||
@ -128,16 +139,14 @@ class _RcmdPageState extends State<RcmdPage>
|
||||
// 列间距
|
||||
crossAxisSpacing: StyleString.cardSpace + 4,
|
||||
// 列数
|
||||
crossAxisCount: ctr.crossAxisCount,
|
||||
crossAxisCount: crossAxisCount,
|
||||
mainAxisExtent:
|
||||
Get.size.width / ctr.crossAxisCount / StyleString.aspectRatio + 64,
|
||||
Get.size.width / crossAxisCount / StyleString.aspectRatio + 66,
|
||||
),
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
(BuildContext context, int index) {
|
||||
return videoList!.isNotEmpty
|
||||
?
|
||||
// VideoCardV(videoItem: videoList![index])
|
||||
VideoCardV(
|
||||
? VideoCardV(
|
||||
videoItem: videoList[index],
|
||||
longPress: () {
|
||||
_rcmdController.popupDialog =
|
||||
|
Reference in New Issue
Block a user