Hamza Sharaf
Hamza Sharaf

Reputation: 871

Flutter PageView with transparent background

I'm trying to make use of the PageView widget. I placed the PageView in a Column so that It can only take 50% of the screen height.

The problem now is that I have an image background of the page underneath the PageView and I need it to have a transparent background so that the user can see the image background under the PageView.

I tried to set the children's background to Colors.transparent but It doesn't work because the container itself is not transparent.

PageView::build

@override
  Widget build(BuildContext context) {
    return PageView.builder(
      controller: pageController,
      itemBuilder: (context, index) {
        return Container(
            color: Colors.transparent,
            child: Column(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: <Widget>[
                TrackAvatar(imageUrl: _list[index].url),
                Text(_list[index].name),
              ],
            ));
      },
      itemCount: 5,
    );
  }

How can I make the PageView widget transparent?

Upvotes: 2

Views: 2273

Answers (1)

Hamza Sharaf
Hamza Sharaf

Reputation: 871

PageView supports transparent background and doesn't require any workaround.

The problem is that I used the PageView inside a Scaffold with a background color set to white.

Changing the scaffold background into transparent solved the problem.

@override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.transparent,
      body: PageView.builder(
        controller: pageController,
        itemBuilder: (context, index) {
          return Container(
              color: Colors.transparent,
              child: Column(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: <Widget>[
                  TrackAvatar(imageUrl: _list[index].url),
                  Text(_list[index].name),
                ],
              ));
        },
        itemCount: 5,
      )
    );
  }

Thanks for folks who tried to help

Upvotes: 1

Related Questions