Σε αυτήν την ανάρτηση ιστολογίου, εστιάζουμε σε μια θεμελιώδη πτυχή της ανάπτυξης εφαρμογών Flutter: τον έλεγχο της απόστασης μεταξύ των στοιχείων σε ένα Column
widget. Η σωστή απόσταση μεταξύ των στοιχείων μπορεί να βελτιώσει σημαντικά την αναγνωσιμότητα της εφαρμογής σας και την εμπειρία χρήστη.
Γιατί η απόσταση έχει σημασία
Πριν μπούμε στα τεχνικά θέματα, είναι σημαντικό να καταλάβουμε γιατί η απόσταση μεταξύ των στοιχείων είναι ζωτικής σημασίας. Η καλή απόσταση ενισχύει την αναγνωσιμότητα, επιτρέπει σε κάθε στοιχείο τον δικό του οπτικό χώρο και βοηθά στον διαχωρισμό διαφορετικών ενοτήτων της εφαρμογής σας.
Χρησιμοποιώντας το mainAxisAlignment
Ο απλούστερος τρόπος διαχείρισης του διαστήματος σε α Column
είναι με τη χρήση του mainAxisAlignment
ιδιοκτησία.
Ο κώδικας
const Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Text('First Child'),
Text('Second Child'),
Text('Third Child'),
],
)
ο mainAxisAlignment
Η ιδιοκτησία ελέγχει πώς κατανέμεται ο χώρος κατά μήκος του κύριου άξονα του Column
. Ρύθμιση σε MainAxisAlignment.spaceAround
θα κατανείμει ομοιόμορφα τον διαθέσιμο χώρο γύρω από τα αντικείμενα.

Διαφορά μεταξύ τύπων χώρου
- διάστημα Γύρω: Κατανέμει ομοιόμορφα τον διαθέσιμο χώρο γύρω από κάθε παιδί, μεταξύ άλλων πριν από το πρώτο και μετά το τελευταίο παιδί.
- διάστημα Μεταξύ: Τοποθετεί ομοιόμορφα τον διαθέσιμο χώρο μεταξύ των παιδιών, αλλά δεν αφήνει χώρο στην αρχή ή στο τέλος.
- χώρο Ομοιόμορφα: Κατανέμει ομοιόμορφα τον διαθέσιμο χώρο σε όλα τα παιδιά, καθώς και πριν από το πρώτο και μετά το τελευταίο παιδί.
Ακολουθεί ο πλήρης κωδικός για αναφορά.
import 'package:flutter/material.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(
'Flutter Example',
),
),
body: const Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Text('First Child'),
Text('Second Child'),
Text('Third Child'),
],
));
}
}
Το γραφικό στοιχείο Spacer
Για πιο λεπτόκοκκο έλεγχο, το Spacer
το widget είναι απίστευτα χρήσιμο.
Χρήση Spacer
const Column(
children: [
Text('First Child'),
Spacer(flex: 2),
Text('Second Child'),
Spacer(flex: 1),
Text('Third Child'),
],
)
Εισαγάγαμε Spacer
widgets μεταξύ των Text
widgets. ο flex
Η ιδιότητα ελέγχει την ποσότητα του χώρου το καθένα Spacer
θα πρέπει να απασχολεί σε σχέση με τα άλλα.

Χρήση επένδυσης για ακριβή απόσταση
Μερικές φορές μπορεί να θέλετε τέλεια απόσταση μεταξύ των pixel. Σε αυτή την περίπτωση, το Padding
widget μπορεί να είναι αρκετά εύχρηστο.
Ο κώδικας
const Column(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text('First Child'),
),
Padding(
padding: const EdgeInsets.all(16.0),
child: Text('Second Child'),
),
],
)
Εδώ, το καθένα Text
Το widget είναι τυλιγμένο σε ένα Padding
widget, επιτρέποντάς σας να ορίσετε την ακριβή πλήρωση γύρω από κάθε στοιχείο.

Είτε χρησιμοποιείται mainAxisAlignment
, Spacer
ή Padding
το Flutter σας προσφέρει διάφορα εργαλεία για να επιτύχετε τέλεια απόσταση σε α Column
. Κατανόηση των λεπτών διαφορών μεταξύ spaceAround
, spaceBetween
και spaceEvenly
μπορεί να σας βοηθήσει να κάνετε πιο ενημερωμένες επιλογές για τη διάταξη της εφαρμογής σας.