I have implemented an offset to force down the listview one quarter of the height of the screen, to accommodate for an image shown above the listview (not in code). But now when I scroll down to the last tile, the listview jumps back up again.

import 'package:flutter/material.dart';

class ProductsPage extends StatelessWidget {
  var data = [
    {
      "title": "Lorem ipsum dolor",
    },
    {
      "title": "Lorem ipsum dolor",
    },
    {
      "title": "Lorem ipsum dolor",
    },
    {
      "title": "Lorem ipsum dolor",
    },
    {
      "title": "Lorem ipsum dolor",
    },
  ];

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      backgroundColor: Colors.white,
      body: new Stack(
        children: <Widget>[
          new Transform.translate(
            offset:
                new Offset(0.0, MediaQuery.of(context).size.height / 4),
            child: new ListView.builder(
              padding: const EdgeInsets.all(0.0),
              scrollDirection: Axis.vertical,
              primary: true,
              itemCount: data.length,
              itemBuilder: (BuildContext content, int index) {
                return ListItem(
                    title: data[index]["title"],
                );
              },
            ),
          ),
        ],
      ),
    );
  }
}

class ListItem extends StatefulWidget {
  String title;

  ListItem({this.title});

  @override
  _ListItemState createState() => new _ListItemState();
}

class _ListItemState extends State<ListItem> {
  @override
  Widget build(BuildContext context) {
    return new Row(
      children: <Widget>[
        new Container(width: 10.0, height: 190.0, color: Colors.black),
        new Expanded(
          child: Container(
            color: Colors.black,
                      child: new Padding(
              padding:
                  const EdgeInsets.symmetric(vertical: 40.0, horizontal: 20.0),
              child: new Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  new Text(
                    widget.title,
                    style: TextStyle(
                        color: Colors.grey.shade800,
                        fontSize: 18.0,
                        fontWeight: FontWeight.bold),
                  ),
                ],
              ),
            ),
          ),
        ),
      ],
    );
  }
}

The code is expected to generate a scrollable list, where you can stop at any place in the list without it scrolling back to the top automatically.