我正在使用Angular与Angular Material配对构建应用程序,我的模块结构存在一些问题.
正如指南所示,不推荐导入MaterialModule,不应该再进行,这就是为什么我创建了一个单独的MaterialModule,我只导入我需要使用的Material模块; 然后将此模块导入SharedModule,最终在所需的任何位置导入,包括主AppModule.
我正在使用的材料组件之一是MdTooltip,除了我在平板电脑上测试我的应用程序时,一切正常:发生的事情是工具提示不会像他们应该的那样对长按钮作出反应,并且他们不会打开.我设法使其工作的唯一方法是在我的AppModule中导入完整的MaterialModule(来自@ angular/material),这是非常错误和不优雅的.任何其他方法似乎都没有削减它,因为他们都会带来自己的问题而不解决这场考验.
这些是我的模块(剥离冗余的import语句):
MaterialModule:
import { NgModule } from '@angular/core';
import {...} from '@angular/material';
@NgModule({
imports: [
MdGridListModule,
MdButtonModule,
MdTabsModule,
MdToolbarModule,
MdCardModule,
MdInputModule,
MdSelectModule,
MdAutocompleteModule,
MdIconModule,
MdTooltipModule
],
exports: [
MdGridListModule,
MdButtonModule,
MdTabsModule,
MdToolbarModule,
MdCardModule,
MdInputModule,
MdSelectModule,
MdAutocompleteModule,
MdIconModule,
MdTooltipModule
],
providers: [
MdIconRegistry
]
})
export class MaterialModule {}
Run Code Online (Sandbox Code Playgroud)
SharedModule:
import { MaterialModule } from '../material/app-material.module';
@NgModule({
imports: [
CommonModule,
MaterialModule,
FlexLayoutModule,
FormsModule,
ReactiveFormsModule
],
declarations: [
NavbarComponent,
SearchFiltersComponent,
RightCurrencyPipe
],
exports: [
CommonModule,
FormsModule, …Run Code Online (Sandbox Code Playgroud) 我在连续使用 GestureDetector 时遇到一些布局问题。
这是我的 Widget 的构建方法:
@override
Widget build(BuildContext context) {
final dateFormat = new DateFormat('dd/MM/yyyy');
List<Widget> children = [
Text(
todo.content,
style: TextStyle(fontWeight: FontWeight.bold, color: Colors.white),
overflow: TextOverflow.ellipsis,
)
];
if (todo.date != null) {
children.add(Text(
dateFormat.format(todo.date!),
style: TextStyle(color: Colors.grey),
));
}
return Container(
height: 50.0,
color: backgroundColour,
padding: EdgeInsets.symmetric(vertical: todoVMargin),
child: Row(
children: [
Theme(
data: ThemeData(unselectedWidgetColor: Colors.white),
child: TokidokiCheckbox(
value: todo.checked,
onChanged: (bool value) {
markChecked(value);
})),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: children,
), …Run Code Online (Sandbox Code Playgroud)