Skip to content

[two_dimensional_scrollables] Pinned rows and columns do not work correctly in a TableView when reverse is set to true on the respective axis  #135386

@Quijx

Description

@Quijx

Summary

Pinned rows and columns do not work correctly in a TableView from the two_dimensional_scrollables when reverse is set to true on the respective axis. The pinned widgets do not show (except for the corner) and incorrect space is inserted where the pinned rows and colums would be if the axis were not reversed.
@Piinks

Is there an existing issue for this?

Steps to reproduce

  1. Create an app from the sample code
  2. Run it

Expected results

  • In the given example it should look like with the lines
        verticalDetails: const ScrollableDetails.vertical(reverse: true),
        horizontalDetails: const ScrollableDetails.horizontal(reverse: true),

removed (see second half of video), just rotated 180°.

Actual results

  • The widgets in the pinned rows and columns do not show except for the one in the corner.
  • Additional space is added on the opposite side of the pinned rows/columns.

Code sample

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

void main() {
  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: const Text('TableView Bug'),
      ),
      body: TableView.builder(
        verticalDetails: const ScrollableDetails.vertical(reverse: true),
        horizontalDetails: const ScrollableDetails.horizontal(reverse: true),
        cellBuilder: (context, vicinity) => Container(
          margin: const EdgeInsets.all(4),
          color: Colors.grey,
        ),
        diagonalDragBehavior: DiagonalDragBehavior.free,
        pinnedRowCount: 1,
        pinnedColumnCount: 1,
        columnCount: 100,
        columnBuilder: (int column) =>
            const TableSpan(extent: FixedTableSpanExtent(64)),
        rowCount: 100,
        rowBuilder: (int row) =>
            const TableSpan(extent: FixedTableSpanExtent(64)),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
screen-20230924-155109.2.mp4

Logs

No response

Flutter Doctor output

Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.13.5, on Antergos Linux 6.5.3-arch1-1, locale en_DE.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 3.5)
[✓] Android Studio (version 2021.2)
[✓] IntelliJ IDEA Community Edition (version 2022.2)
[✓] IntelliJ IDEA Community Edition (version 2023.1)
[✓] Connected device (3 available)
[✓] Network resources

• No issues found!

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work listf: scrollingViewports, list views, slivers, etc.found in release: 3.13Found to occur in 3.13found in release: 3.15Found to occur in 3.15frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onp: two_dimensional_scrollablesIssues pertaining to the two_dimensional_scrollables packagepackageflutter/packages repository. See also p: labels.r: fixedIssue is closed as already fixed in a newer versionteam-frameworkOwned by Framework teamtriaged-frameworkTriaged by Framework team

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions