0Pricing
Flutter Mobile Development · Lektion

Interaktive Elemente der Benutzeroberfläche

Implementieren Sie gängige interaktive Elemente wie Buttons, TextFields, Images und Icons, um Ihre Anwendungen ansprechend zu gestalten.

Interaktive Elemente der Benutzeroberfläche ist eine kostenlose Flutter Mobile Development-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Flutter Mobile Development-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Flutter Mobile Development-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Engaging User Interaction

Welcome to creating interactive UIs! In Flutter, interactive elements are key to making your apps useful and fun to use.

These elements let users tap, type, and see dynamic content. We'll explore common ones like buttons, text fields, images, and icons.

Buttons: Your First Interaction

Buttons are fundamental for user actions. Flutter provides several button types, each suited for different emphasis levels:

  • ElevatedButton: A material design button with a shadow, indicating high emphasis.
  • TextButton: A text label button with no elevation, for less prominent actions.
  • OutlinedButton: A button with a border, for medium-emphasis actions.

All buttons typically have an onPressed callback, which defines what happens when the button is tapped.

ElevatedButton in Action

The ElevatedButton is great for primary actions. Let's see how to create one that prints a message when tapped.

The onPressed property takes a function that executes when the button is pressed.

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(
      home: Scaffold(
        appBar: AppBar(title: const Text('Elevated Button')),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              print('Button Tapped!');
            },
            child: const Text('Tap Me!')
          ),
        ),
      ),
    );
  }
}

TextButton & OutlinedButton

Beyond ElevatedButton, you'll often use TextButton and OutlinedButton.

  • TextButton is ideal for secondary actions, like 'Cancel' in a dialog.
  • OutlinedButton provides a visual border, suitable for actions that need a bit more emphasis than a TextButton but less than an ElevatedButton.

They both share the onPressed property for handling taps.

TextFields for User Input

To get text input from users, Flutter provides the TextField widget. It's highly customizable for various input needs, from simple names to complex multi-line text.

You'll often use a TextEditingController with TextField to programmatically control and retrieve the text input by the user.

Building an Input Field

Here's a basic TextField that uses a TextEditingController. We'll also add a button to display what the user typed.

Notice how the controller is passed to the TextField and used to get its current text.

import 'package:flutter/material.dart';

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

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

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final TextEditingController _controller = TextEditingController();

  @override
  void dispose() {
    _controller.dispose(); // Important to dispose controllers!
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Text Field')),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            children: [
              TextField(
                controller: _controller,
                decoration: const InputDecoration(
                  labelText: 'Enter your name',
                  border: OutlineInputBorder(),
                ),
              ),
              const SizedBox(height: 10),
              ElevatedButton(
                onPressed: () {
                  print('User typed: ${_controller.text}');
                },
                child: const Text('Show Input'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Showing Visuals with Images

Images bring visual appeal to your app. Flutter's Image widget can load images from various sources:

  • Assets: Image.asset('assets/my_image.png') for local images bundled with your app.
  • Network: Image.network('https://example.com/image.jpg') for images from the internet.
  • Files: Image.file(File('path/to/image.jpg')) from the device's file system.
  • Memory: Image.memory(bytes) from raw byte data.

Loading an Image from Web

Let's display an image directly from a URL using Image.network. This is common for dynamic content.

Make sure you have an internet connection to load network images.

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(
      home: Scaffold(
        appBar: AppBar(title: const Text('Network Image')),
        body: Center(
          child: Image.network(
            'https://flutter.dev/assets/images/shared/brand/flutter/logo/flutter-lockup-horizontal.png',
            width: 250,
          ),
        ),
      ),
    );
  }
}

Icons for Clarity & Guidance

Icons are small, symbolic images that convey meaning quickly. Flutter has a rich set of built-in Material Design icons, accessible through the Icons class.

You use the Icon widget to display them. Icons are excellent for navigation, indicating actions, or simply adding visual flair.

Adding a Simple Icon

Displaying an icon is straightforward. Just pass an icon from the Icons class to the Icon widget. You can also customize its color and size.

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(
      home: Scaffold(
        appBar: AppBar(title: const Text('Flutter Icon')),
        body: const Center(
          child: Icon(
            Icons.star, // A star icon
            color: Colors.amber,
            size: 100.0,
          ),
        ),
      ),
    );
  }
}

Interactive Elements Challenge

Which of the following are valid ways to display an image in Flutter using the Image widget constructors?

Wrapping Up Interactive UI

Great job! You've learned how to implement essential interactive UI elements in Flutter. We covered:

  • Buttons: ElevatedButton, TextButton, OutlinedButton for user actions.
  • TextFields: For collecting user text input.
  • Images: Displaying visuals from assets or the network.
  • Icons: Adding symbolic visual cues to your app.

Mastering these elements is crucial for building engaging and user-friendly Flutter applications. Keep practicing!

Häufig gestellte Fragen

Ist die Lektion „Interaktive Elemente der Benutzeroberfläche“ kostenlos?

Ja — der vollständige Text von „Interaktive Elemente der Benutzeroberfläche“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Flutter Mobile Development-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Flutter Mobile Development-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Interaktive Elemente der Benutzeroberfläche“?

Implementieren Sie gängige interaktive Elemente wie Buttons, TextFields, Images und Icons, um Ihre Anwendungen ansprechend zu gestalten. Du übst Flutter Mobile Development mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Flutter Mobile Development zu starten?

Keine Vorkenntnisse erforderlich. Flutter Mobile Development auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Interaktive Elemente der Benutzeroberfläche“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Flutter Mobile Development-Lektion Code schreiben und ausführen?

Ja. Jede Flutter Mobile Development-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Stateless- und Stateful-Widgets
  2. Grundlegende Layout-Widgets
  3. Interaktive Elemente der Benutzeroberfläche
  4. Scrollbare Listen mit ListView erstellen
← Zurück zu Flutter Mobile Development