例如
如果 TEXT = "text1' 而不是 page = mainpage(),
否則如果 TEXT = "text2' 而不是 page = mainpage2(),
和
如果 TEXT 是其他源代碼字串后各種
我怎樣才能接線:<
請幫幫我
額外的
class Categorylist extends StatefulWidget {
@override
_CategorylistState createState() => _CategorylistState();
}
class _CategorylistState extends State<Categorylist> {
int selectedCategory = 0;
List<String> categories = ["????", "?? ???", "?? ?? ???", "?? ?? ???", "?? ?? ????"];
@override
Widget build(BuildContext context) {
return Container(
alignment: Alignment.bottomCenter,
margin: EdgeInsets.symmetric(vertical: kDefaultPadding / 2),
height: 61,
child: ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: categories.length,
itemBuilder: (context, index) => buildCategory(index, context),
),
);
}
Padding buildCategory(int index, BuildContext context) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: kDefaultPadding),
child: GestureDetector(
onTap: () {
setState(() {
selectedCategory = index;
});
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
categories[index],
style: Theme.of(context).textTheme.bodyText1.copyWith(
fontWeight: FontWeight.w500,
color: index == selectedCategory
? kTextColor
: Colors.black.withOpacity(0.4),
),
),
Container(
margin: EdgeInsets.symmetric(vertical: kDefaultPadding / 2),
alignment: Alignment.center,
height: 6,
width: 40,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: index == selectedCategory
? kSecondaryColor
: Colors.transparent,
),
)
],
),
),
);
}
}
class ChangePage extends StatelessWidget {
const ChangePage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
body: ChangeBody(),
);
}
}
class ChangeBody extends StatelessWidget {
const ChangeBody({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
if (categories == '????') [
ChangeBody() = mainpage()
]
else (categories == '?? ???')[
ChangeBody() = RegionJob()
],
],
),;
}
}
這是我根據您的建議編輯的代碼,
但我需要更多幫助來插入我的 if 代碼
我的 if 代碼是 categories ,ChangeBody() = mainpage() 是紅線,
uj5u.com熱心網友回復:
Container(
padding: EdgeInsets.all(8.0),
height: 100,
child: Row(
children: [
true
? Text("No button")
: ElevatedButton(onPressed: () {}, child: Text("button"))
],
),
)
要么
Container(
padding: EdgeInsets.all(8.0),
height: 100,
child: Row(
children: [
if (true)
Text("No button")
else
ElevatedButton(onPressed: () {}, child: Text("button")),
],
),
)
要么
在 build 方法外宣告 mywidget 方法
Container(
padding: EdgeInsets.all(8.0),
height: 100,
child: Row(
children: [
mywidget(),
],
),
)
mywidget() {
if (true)
return Text("No button");
else
return ElevatedButton(onPressed: () {}, child: Text("button"));
}
要么
在構建方法之外宣告按鈕變數
var button = true
? Text("No button")
: ElevatedButton(onPressed: () {}, child: Text("button"));
Row(
children: [
mywidget(),
button,
true
? Text("No button")
: ElevatedButton(onPressed: () {}, child: Text("button")),
if (true)
Text("No button")
else
ElevatedButton(onPressed: () {}, child: Text("button")),
],
)
全碼
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(MaterialApp(home: Mainwidget()));
}
class Mainwidget extends StatefulWidget {
const Mainwidget({Key? key}) : super(key: key);
@override
_MainwidgetState createState() => _MainwidgetState();
}
class _MainwidgetState extends State<Mainwidget> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Container(
padding: EdgeInsets.all(8.0),
height: 100,
child: Row(
children: [
mywidget(),
button,
true
? Text("No button")
: ElevatedButton(onPressed: () {}, child: Text("button")),
if (true)
Text("No button")
else
ElevatedButton(onPressed: () {}, child: Text("button")),
],
),
),
),
);
}
mywidget() {
if (true)
return Text("No button");
else
return ElevatedButton(onPressed: () {}, child: Text("button"));
}
var button = true
? Text("No button")
: ElevatedButton(onPressed: () {}, child: Text("button"));
}
uj5u.com熱心網友回復:
你可以寫 if 條件如下
if(TEXT == "text1"){
page = mainpage()
}else if(TEXT == "text2"){
page = mainpage2()
}else{
// set your code
}
uj5u.com熱心網友回復:
方法一
if(TEXT == "text1)
{
page = mainpage();
}
else {
page = mainpage2();
}
方法 2(使用 ? 運算子)
TEXT == "text" ?
page = mainpage() :
page = mainpage2();
uj5u.com熱心網友回復:
use switch case wrapped in builder method. Something like this
enum Options { text1, text2 }
Builder(
builder: (context) {
switch (option) {
case Options.text1:
return Page1();
case Options.text2:
return Page2();
default:
return Page1();
}
},
)
uj5u.com熱心網友回復:
在小部件上使用 if else 條件的最佳方法是,
Column(
children: [
if (yourCondition == true) ...[
Text(""),
] else ...[
Text(""),
],
],
),
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/430831.html
上一篇:顫振版本。2.8.1設定狀態值
