mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
We now have an explicit focus tree that we manage. Instead of using GlobalKeys to manage focus, we use FocusNode and FocusScopeNode objects. The FocusNode is Listenable and notifies when its focus state changes. Focus notifications trigger by tree mutations are now delayed by one frame, which is necessary to handle certain complex tree mutations. In the common case of focus changes being triggered by user input, the focus notificiation still arives in the same frame.
73 lines
2.7 KiB
Dart
73 lines
2.7 KiB
Dart
// Copyright 2015 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
/// The Flutter widgets framework.
|
|
///
|
|
/// To use, import `package:flutter/widgets.dart`.
|
|
library widgets;
|
|
|
|
export 'package:vector_math/vector_math_64.dart' show Matrix4;
|
|
|
|
export 'src/widgets/animated_cross_fade.dart';
|
|
export 'src/widgets/animated_size.dart';
|
|
export 'src/widgets/app.dart';
|
|
export 'src/widgets/async.dart';
|
|
export 'src/widgets/banner.dart';
|
|
export 'src/widgets/basic.dart';
|
|
export 'src/widgets/binding.dart';
|
|
export 'src/widgets/container.dart';
|
|
export 'src/widgets/debug.dart';
|
|
export 'src/widgets/dismissible.dart';
|
|
export 'src/widgets/drag_target.dart';
|
|
export 'src/widgets/editable_text.dart';
|
|
export 'src/widgets/focus_manager.dart';
|
|
export 'src/widgets/focus_scope.dart';
|
|
export 'src/widgets/form.dart';
|
|
export 'src/widgets/framework.dart';
|
|
export 'src/widgets/gesture_detector.dart';
|
|
export 'src/widgets/gridpaper.dart';
|
|
export 'src/widgets/heroes.dart';
|
|
export 'src/widgets/image.dart';
|
|
export 'src/widgets/implicit_animations.dart';
|
|
export 'src/widgets/layout_builder.dart';
|
|
export 'src/widgets/locale_query.dart';
|
|
export 'src/widgets/media_query.dart';
|
|
export 'src/widgets/modal_barrier.dart';
|
|
export 'src/widgets/navigator.dart';
|
|
export 'src/widgets/notification_listener.dart';
|
|
export 'src/widgets/orientation_builder.dart';
|
|
export 'src/widgets/overlay.dart';
|
|
export 'src/widgets/overscroll_indicator.dart';
|
|
export 'src/widgets/page_storage.dart';
|
|
export 'src/widgets/page_view.dart';
|
|
export 'src/widgets/pages.dart';
|
|
export 'src/widgets/performance_overlay.dart';
|
|
export 'src/widgets/placeholder.dart';
|
|
export 'src/widgets/primary_scroll_controller.dart';
|
|
export 'src/widgets/raw_keyboard_listener.dart';
|
|
export 'src/widgets/routes.dart';
|
|
export 'src/widgets/scroll_configuration.dart';
|
|
export 'src/widgets/scroll_controller.dart';
|
|
export 'src/widgets/scroll_notification.dart';
|
|
export 'src/widgets/scroll_physics.dart';
|
|
export 'src/widgets/scroll_position.dart';
|
|
export 'src/widgets/scroll_simulation.dart';
|
|
export 'src/widgets/scroll_view.dart';
|
|
export 'src/widgets/scrollable.dart';
|
|
export 'src/widgets/semantics_debugger.dart';
|
|
export 'src/widgets/single_child_scroll_view.dart';
|
|
export 'src/widgets/size_changed_layout_notifier.dart';
|
|
export 'src/widgets/sliver.dart';
|
|
export 'src/widgets/sliver_persistent_header.dart';
|
|
export 'src/widgets/status_transitions.dart';
|
|
export 'src/widgets/table.dart';
|
|
export 'src/widgets/text.dart';
|
|
export 'src/widgets/text_selection.dart';
|
|
export 'src/widgets/ticker_provider.dart';
|
|
export 'src/widgets/title.dart';
|
|
export 'src/widgets/transitions.dart';
|
|
export 'src/widgets/unique_widget.dart';
|
|
export 'src/widgets/viewport.dart';
|
|
export 'src/widgets/will_pop_scope.dart';
|