【发布时间】:2021-11-30 23:14:44
【问题描述】:
想知道当用户点击芯片时,我如何在屏幕上显示芯片内的文本,希望文本位于芯片下方,当用户按下芯片时,文字显示在那里没有水平空格,单词应该在下面换行。
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:sizer/sizer.dart';
import 'package:femija_musliman/rendit_fjalet_quiz.dart';
import 'dataset.dart';
class RenditFjaletButton extends StatefulWidget {
RenditFjaletButton({required this.QuizList, Key? key}) : super(key: key);
late List QuizList;
@override
State<RenditFjaletButton> createState() => _RenditFjaletButtonState();
}
class _RenditFjaletButtonState extends State<RenditFjaletButton> {
late Future<List<QuizInfo>?> futureData;
int counter = 1;
int counterForChips = 0;
bool showWord = true;
int _selectedChipsIndex = 0;
List selectReportList = [];
void initState() {
super.initState();
futureData = fetchData1() as Future<List<QuizInfo>?>;
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
toolbarHeight: 23.h,
backgroundColor: Color(0xFFEF6E98),
title: Column(children: <Widget>[
Align(
alignment: Alignment.topCenter,
child: Padding(
padding: const EdgeInsets.only(right: 50),
child: Text(
'Rendit Fjalet',
style: TextStyle(fontSize: 25.sp),
),
),
),
Align(
alignment: Alignment.topCenter,
child: Padding(
padding: const EdgeInsets.only(right: 60, bottom: 60),
child: Text(
'- Fjala numer: -',
style: TextStyle(fontSize: 18.sp),
),
))
])),
body: FutureBuilder<List<QuizInfo>?>(
future: futureData,
builder: (context, snapshot) {
if (snapshot.hasData) {
List<QuizInfo>? data = snapshot.data;
return Stack(children: [
Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(
'assets/background.PNG',
),
fit: BoxFit.cover)),
),
Container(
margin: EdgeInsets.all(20),
child: Wrap(
direction: Axis.horizontal,
spacing: 20,
children: List<Widget>.generate(widget.QuizList.length,
(int index) {
var chipsText = widget.QuizList[index].toString();
void _handleTap(int index) {
setState(() {
_selectedChipsIndex = index;
});
}
return GestureDetector(
onTap: () {
_handleTap(index);
},
child: Chip(
label: Text(
chipsText,
style: TextStyle(
fontSize: 20.sp,
color: Colors.white,
fontWeight: FontWeight.bold),
),
backgroundColor: Color(0xFF50CFFD),
));
}),
)),
Padding(
padding: const EdgeInsets.only(bottom: 170, left: 40),
child: Align(
alignment: Alignment.bottomLeft,
child: Text(
" ${(widget.QuizList[_selectedChipsIndex])}",
style: TextStyle(
fontSize: 20.sp,
color: Color(0xFF50CFFD),
fontWeight: FontWeight.bold),
),
),
),
Padding(
padding: const EdgeInsets.only(bottom: 155),
child: Align(
alignment: Alignment.bottomCenter,
child: Padding(
padding: const EdgeInsets.only(left: 30),
child: Divider(
endIndent: 30,
thickness: 5,
color: Colors.pinkAccent,
),
),
),
)
]);
}
return Center(child: CircularProgressIndicator());
}));
}
}
所以图像是我现在想要实现的,我只有带有文字的芯片,我希望当用户按下芯片时,我希望芯片内的单词在没有水平空间时显示文本显示在新行]click for image
【问题讨论】:
-
你能告诉我你想要实现的图像吗?
-
是的,添加了一张图片及其描述
-
如果我没记错的话,当你按下芯片时,文字会显示在芯片下方和芯片上的文字内?我说得对吗
-
是的,假设我们有五个筹码,其中五个有文字,如果用户按下其中任何一个,筹码文本将显示在下方,如果用户按下其他筹码,则其他筹码文本将显示而不覆盖第一个
-
好的,现在我已经了解您的要求,请查看我更新的答案。我想这次你不会失望的。
标签: flutter dart flutter-layout