问题描述
我使用 Flutter 制作了一个主从类型视图应用程序,在 Flutter 桌面上运行。我在 appBar 上实现了 SearchDelegate,但它占用了应用的整个宽度。
这是一些屏幕截图。
当搜索处于活动状态时
这是一些代码:
main_page.dart
class _MainPageState extends State<MainPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: LayoutBuilder(
builder: (context,constraints){
if(!(constraints.maxWidth > 768)){
return MasterTab();
}
return Row(
children: [
Container(
width: constraints.maxWidth / 4,child: MasterTab(),),Expanded(
child: DetailTab(),)
],);
},);
}
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Primary"),actions: [
IconButton(
onpressed: () {
showSearch(context: context,delegate: SearchView());
},icon: Icon(Icons.search))
],body: ListView.builder(
itemCount: _notes.length,itemBuilder: (context,index){
return ItemNote(noteEntity: _notes[index]);
},floatingActionButton: FloatingActionButton(
onpressed: _onAddNoteClick,child: Icon(Icons.create),);
}
detail_tab.dart(右侧,红色)
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Align(
alignment: Alignment.topRight,child: DetailAction(),Expanded(child: Container(
color: Colors.red,))
],)
);
}
search_delegate.dart
class SearchView extends SearchDelegate {
@override
List<Widget> buildActions(BuildContext context) {
return [
IconButton(onpressed: () {
query = "";
},icon: Icon(Icons.close))
];
}
@override
Widget buildLeading(BuildContext context) {
return IconButton(onpressed: () {
Navigator.pop(context);
},icon: Icon(Icons.arrow_back));
}
@override
Widget buildresults(BuildContext context) {
return Container(
color: Colors.Amber,child: Center(
child: Text("Search query"),);
}
@override
Widget buildSuggestions(BuildContext context) {
return Container(
child: Center(
child: Text("Suggestion"),);
}
}
我想让搜索视图只在左侧工作(不占全角),如何实现?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)