我试图提取重用一个简单的小部件,然后在父小部件中引用它。自定义小部件只是使用一行来布局一个文本字段和一个按钮,下面我想要一个显示项目的列表视图。然后,我将customwidget嵌入到parent中,但它会不断抛出错误。我还没有弄明白如何让自定义小部件在可以使用ListView或column layout的地方工作。下面是演示该问题的两个简化小部件。
这是父窗口小部件,我将其称为custom widget PlayControl()
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('My Playlists'),
),
body: Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
textDirection: TextDirection.ltr,
children: <Widget>[
Container(
alignment: Alignment.center,
margin: EdgeInsets.all(20),
child: Text('Test'),
),
PlayListControl(),
],
),
),
drawer: SideDrawer(),
);
}
}
这是播放控制小部件。
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.all(10),
child: Column(
children: <Widget>[
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
width: 200,
child: TextField(),
),
ButtonTheme(
minWidth: 30,
child: RaisedButton(
textColor: Colors.white,
child: Text('add'),
onPressed: () {},
)),
],
),
),
Expanded(
child: ListView(
children: <Widget>[
Text('Widget 1'),
Text('Widget 2'),
],
),
)
],
),
);
}
}
无论我尝试什么,它总是抱怨与高度相关的布局问题。我本以为用扩展包装列表视图会解决这个问题,但事实并非如此。只有当我使用容器并指定高度时,我才不会出错,但我想使用任何可用的空间。
如何让PlayControl()小部件在父控件中正确呈现?
您忘记在扩展的小部件中包装PlayControl的第一个容器。。
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: Scaffold(
appBar: AppBar(
title: Text('My Playlists'),
),
body: Container(
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
textDirection: TextDirection.ltr,
children: <Widget>[
Container(
alignment: Alignment.center,
margin: EdgeInsets.all(20),
child: Text('Test'),
),
PlayListControl(),
],
),
),
));
}
}
class PlayListControl extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Expanded(
child: Container(
margin: EdgeInsets.all(10),
child: Column(
children: <Widget>[
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
width: 200,
child: TextField(),
),
ButtonTheme(
minWidth: 30,
child: RaisedButton(
textColor: Colors.white,
child: Text('add'),
onPressed: () {},
)),
],
),
),
Expanded(
child: ListView(
children: <Widget>[
Text('Widget 1'),
Text('Widget 2'),
],
),
)
],
),
),
);
}
}
我在使用AppCompat时突然想到,我一直在使用<code>按钮位于我的布局XML文件中。我通过<code>view.getClass()做了一个测试。getSimpleName()并确认,即使我在XML中将其声明为,被加载的类实际上是。 这是怎么回事,在引擎盖下?
本文向大家介绍WPF的ListView控件自定义布局用法实例,包括了WPF的ListView控件自定义布局用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了WPF的ListView控件自定义布局用法。分享给大家供大家参考,具体如下: 概要: 以源码的形式贴出,免得忘记后,再到网上查资料。在VS2008+SP1环境下调试通过 引用的GrayscaleEffect模块,可根据参考资料《G
正在开发一个应用程序,采取学生考勤,我想得到的名单上勾选的名字“考勤”,当我点击一个“考勤”在相同的自定义列表视图。拜托,我该怎么做? 这是我的密码...自定义视图 ListAdapter公共类StudentListAdapter1扩展了BaseAdapter{private Context mContext;private List mStudentList; } 考勤activityprote
问题内容: 我真的很想把头发拔出来。一些背景。我有一个项目列表,所有项目旁边都有复选框。取消选择复选框后,将出现一个按钮,您可以从列表中删除该项目。乍一看似乎是倒退,但我们只希望“选定”的项目有资格进行进一步处理,等等。这是我的布局: 我无法使这3个物品在行中垂直居中以挽救生命。,,,没有它的工作原理。我敢肯定,我的问题是要在某个地方翻转一下,但我确实对此持怀疑态度。 编辑:我知道textview
在我的vadin应用程序中,一个扩展AbstractJavaScriptComponent的自定义小部件有几个文件,如下所示。这些文件在浏览器中可用 null
我正在使用log4j2和滚动appender文件。我想使用自定义布局,但它不能正常工作。 我在JBoss工作。我已将具有cusotmize布局的lib放在libs目录中,因此它位于类路径中。 在log4j2.xml,我已经把以下配置: 但是没有正确记录! 提前谢谢 贾米拉