• Taha Tesser's avatar
    Introduce `avatarBoxConstraints` & `deleteIconBoxConstraints` for the chips (#143302) · ccf42dde
    Taha Tesser authored
    fixes [Chip widget's avatar padding changing if label text is more than 1 line](https://github.com/flutter/flutter/issues/136892)
    
    ### Code sample
    
    <details>
    <summary>expand to view the code sample</summary> 
    
    ```dart
    import 'package:flutter/material.dart';
    
    List<String> strings = [
      'hello good morning',
      'hello good morning hello good morning',
      'hello good morning hello good morning hello good morning'
    ];
    
    void main() => runApp(const MyApp());
    
    class MyApp extends StatelessWidget {
      const MyApp({super.key});
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          debugShowCheckedModeBanner: false,
          home: Scaffold(
            body: Center(
              child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: [
                  Column(
                    mainAxisSize: MainAxisSize.min,
                    crossAxisAlignment: CrossAxisAlignment.center,
                    children: [
                      const Text(
                          'avatarBoxConstraints: null \ndeleteIconBoxConstraints: null',
                          textAlign: TextAlign.center),
                      for (String string in strings)
                        Padding(
                          padding: const EdgeInsets.all(8.0),
                          child: RawChip(
                            label: Container(
                              width: 150,
                              color: Colors.amber,
                              child: Text(
                                string,
                                maxLines: 3,
                                overflow: TextOverflow.ellipsis,
                              ),
                            ),
                            avatar: const Icon(Icons.settings),
                            onDeleted: () {},
                          ),
                        ),
                    ],
                  ),
                  Column(
                    mainAxisSize: MainAxisSize.min,
                    crossAxisAlignment: CrossAxisAlignment.center,
                    children: [
                      const Text(
                          'avatarBoxConstraints: BoxConstraints.tightForFinite() \ndeleteIconBoxConstraints: BoxConstraints.tightForFinite()',
                          textAlign: TextAlign.center),
                      for (String string in strings)
                        Padding(
                          padding: const EdgeInsets.all(8.0),
                          child: RawChip(
                            avatarBoxConstraints:
                                const BoxConstraints.tightForFinite(),
                            deleteIconBoxConstraints:
                                const BoxConstraints.tightForFinite(),
                            label: Container(
                              width: 150,
                              color: Colors.amber,
                              child: Text(
                                string,
                                maxLines: 3,
                                overflow: TextOverflow.ellipsis,
                              ),
                            ),
                            avatar: const Icon(Icons.settings),
                            onDeleted: () {},
                          ),
                        ),
                    ],
                  ),
                ],
              ),
            ),
          ),
        );
      }
    }
    
    ```
    
    </details>
    
    ### Preview
    ![Screenshot 2024-02-12 at 14 58 35](https://github.com/flutter/flutter/assets/48603081/5724bd07-7ac7-4987-b992-fa3ab8488273)
    
    # Example previews
    ![Screenshot 2024-02-12 at 22 15 14](https://github.com/flutter/flutter/assets/48603081/33af472d-3561-47d4-8d0d-e1628de1e0aa)
    ![Screenshot 2024-02-12 at 22 15 46](https://github.com/flutter/flutter/assets/48603081/3de78b59-5cb6-4fd8-879b-8e204aacb069)
    ccf42dde