Skip to content

When wrapping a network image with BoxFit.scaleDown in Flutter, an error occur #139539

@ehxie

Description

@ehxie

Is there an existing issue for this?

Steps to reproduce

i will show all source code

Expected results

can render the image

Actual results

received some errors

The following assertion was thrown during performLayout():
'package:flutter/src/rendering/box.dart': Failed assertion: line 320 pos 12: 'width > 0.0': is not true.

Code sample

Code sample
import 'package:flutter/material.dart';

/// Flutter code sample for [FittedBox].

void main() => runApp(const FittedBoxApp());

class FittedBoxApp extends StatelessWidget {
  const FittedBoxApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('FittedBox Sample')),
        body: const Center(
          child: FittedBoxExample(),
        ),
      ),
    );
  }
}

class FittedBoxExample extends StatelessWidget {
  const FittedBoxExample({super.key});

  @override
  Widget build(BuildContext context) {
    return Container(
      height: 400,
      width: 300,
      color: Colors.blue,
      child: FittedBox(
          // TRY THIS: Try changing the fit types to see how they change the way
          // the placeholder fits into the container.
          fit: BoxFit.scaleDown,
          clipBehavior: Clip.hardEdge,
          alignment: Alignment.bottomRight,
          // case1: work well
          // child: Placeholder(),

          // case2: received some errors
          child: Image.network(
            'https://oss-media.cdn.bcebos.com/content_square/33d57650-8078-9ae5-5f93-7dc50285b4bf.jpg',
            fit: BoxFit.scaleDown,
          )

          // case3: work well
          // child: Container(
          //   width: 200,
          //   height: 200,
          //   child: Image.network(
          //     'https://oss-media.cdn.bcebos.com/content_square/33d57650-8078-9ae5-5f93-7dc50285b4bf.jpg',
          //     fit: BoxFit.scaleDown,
          //   )
          // ),
          ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

[Upload media here]
image

Logs

Logs
[Paste your logs here]

Flutter Doctor output

Doctor output
> flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.16.2, on macOS 14.1.1 23B81 darwin-arm64, locale zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✗] Xcode - develop for iOS and macOS
    ✗ Xcode installation is incomplete; a full installation is necessary for iOS and macOS development.
      Download at: https://developer.apple.com/xcode/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
        sudo xcodebuild -runFirstLaunch
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.3)
[✗] Cannot determine if IntelliJ is installed
    ✗ Directory listing failed
[✓] VS Code (version 1.84.2)
[✓] Connected device (3 available)
[✓] Network resources

! Doctor found issues in 3 categories.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Issues that are less important to the Flutter projecta: imagesLoading, displaying, rendering imagesc: crashStack traces logged to the consolefound in release: 3.16Found to occur in 3.16found in release: 3.18Found to occur in 3.18frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionteam-frameworkOwned by Framework teamtriaged-frameworkTriaged by Framework team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions