mirror of
				https://gitlab.com/famedly/fluffychat.git
				synced 2025-11-03 22:07:23 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'package:flutter/material.dart';
 | 
						|
 | 
						|
enum FocusPage { FIRST, SECOND }
 | 
						|
 | 
						|
class AdaptivePageLayout extends StatelessWidget {
 | 
						|
  final Widget firstScaffold;
 | 
						|
  final Widget secondScaffold;
 | 
						|
  final FocusPage primaryPage;
 | 
						|
  final double minWidth;
 | 
						|
 | 
						|
  static const double defaultMinWidth = 400;
 | 
						|
  static bool columnMode(BuildContext context) =>
 | 
						|
      MediaQuery.of(context).size.width > 2 * defaultMinWidth;
 | 
						|
 | 
						|
  AdaptivePageLayout(
 | 
						|
      {this.firstScaffold,
 | 
						|
      this.secondScaffold,
 | 
						|
      this.primaryPage = FocusPage.FIRST,
 | 
						|
      this.minWidth = defaultMinWidth,
 | 
						|
      Key key})
 | 
						|
      : super(key: key);
 | 
						|
 | 
						|
  @override
 | 
						|
  Widget build(BuildContext context) {
 | 
						|
    return OrientationBuilder(builder: (context, orientation) {
 | 
						|
      if (orientation == Orientation.portrait || !columnMode(context)) {
 | 
						|
        if (primaryPage == FocusPage.FIRST) {
 | 
						|
          return firstScaffold;
 | 
						|
        } else {
 | 
						|
          return secondScaffold;
 | 
						|
        }
 | 
						|
      }
 | 
						|
      return Row(
 | 
						|
        children: <Widget>[
 | 
						|
          Container(
 | 
						|
            width: minWidth,
 | 
						|
            child: firstScaffold,
 | 
						|
          ),
 | 
						|
          Container(
 | 
						|
            width: 1,
 | 
						|
            color: Theme.of(context).secondaryHeaderColor, //Color(0xFFE8E8E8),
 | 
						|
          ),
 | 
						|
          Expanded(
 | 
						|
            child: Container(
 | 
						|
              child: secondScaffold,
 | 
						|
            ),
 | 
						|
          )
 | 
						|
        ],
 | 
						|
      );
 | 
						|
    });
 | 
						|
  }
 | 
						|
}
 |