提交 1eeefed9 authored 作者: yueweilu's avatar yueweilu

讨论窗口 键盘 基本布局

上级 6bc3e093
...@@ -19,8 +19,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -19,8 +19,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
bool showChat = false; bool showChat = false;
final FocusNode commentFocusNode = FocusNode(); final FocusNode discussTitleFocusNode = FocusNode();
final FocusNode discussContentFocusNode = FocusNode();
late AnimationController _controller; late AnimationController _controller;
bool _show = true; bool _show = true;
...@@ -63,7 +63,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -63,7 +63,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
AnimationController get controller => _controller; AnimationController get controller => _controller;
void _onCommentFocusChanged() { void _onCommentFocusChanged() {
if (commentFocusNode.hasFocus) { if (discussTitleFocusNode.hasFocus || discussContentFocusNode.hasFocus) {
setShowChat(true); setShowChat(true);
} else { } else {
setShowChat(false); setShowChat(false);
...@@ -78,7 +78,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -78,7 +78,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
@override @override
void onInit() { void onInit() {
// pageController = PageController(initialPage: currentPage); // pageController = PageController(initialPage: currentPage);
commentFocusNode.addListener(_onCommentFocusChanged); discussTitleFocusNode.addListener(_onCommentFocusChanged);
/// 默认不显示状态栏 /// 默认不显示状态栏
// SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky); // SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
/// 初始化 /// 初始化
...@@ -98,8 +98,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -98,8 +98,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
@override @override
void onClose() { void onClose() {
_controller.dispose(); _controller.dispose();
commentFocusNode.removeListener(_onCommentFocusChanged); discussTitleFocusNode.removeListener(_onCommentFocusChanged);
commentFocusNode.dispose(); discussTitleFocusNode.dispose();
super.onClose(); super.onClose();
} }
......
...@@ -25,3 +25,4 @@ part 'widgets/note.dart'; ...@@ -25,3 +25,4 @@ part 'widgets/note.dart';
part 'widgets/book.dart'; part 'widgets/book.dart';
part 'note_controller.dart'; part 'note_controller.dart';
part 'discuss_controller.dart'; part 'discuss_controller.dart';
part 'widgets/input_discuss.dart';
\ No newline at end of file
差异被折叠。
part of web;
class ReadInputDiscuss extends StatefulWidget {
final ReadController controller;
const ReadInputDiscuss({
Key? key,
required this.controller,
}) : super(key: key);
@override
State<ReadInputDiscuss> createState() => _ReadInputDiscussState();
}
class _ReadInputDiscussState extends State<ReadInputDiscuss> {
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.symmetric(horizontal: 15.w),
child: Column(
children: [
Container(
margin: EdgeInsets.symmetric(vertical: 10.w),
child: Row(
children: [
Text('话题',style: TextStyle(fontSize: 14.w,color: Colours.c3,height: 1.5,fontWeight: Fonts.medium),),
Gaps.hGaps5,
Expanded(
child: ClipRRect(
borderRadius: BorderRadius.circular(4),
child: TextField(
focusNode: widget.controller.discussTitleFocusNode,
autofocus: true,
decoration: InputDecoration(
border: InputBorder.none,
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
hintText: '请输入话题名称',
hintStyle:TextStyle(fontSize: 12.w,height: 1.5,color: Colours.c9,),
filled: true,
fillColor: Colours.cF8,
),
),
),
),
],
),
),
ClipRRect(
borderRadius: BorderRadius.circular(4.w),
child: Container(
color: Colours.cF8,
constraints: BoxConstraints(
minHeight: 100.w
),
child: Column(
children: [
TextField(
focusNode: widget.controller.discussContentFocusNode,
maxLines: null,
decoration: InputDecoration(
border: InputBorder.none,
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
hintText: '请输入内容',
hintStyle:TextStyle(fontSize: 12.w,height: 1.5,color: Colours.c9,),
filled: true,
fillColor: Colours.cF8,
),
),
Column(
children: [
MediaQuery.removePadding(
context: context,
removeTop: true,
child: GridView.builder(
// padding: const EdgeInsets.only(left: 13,top: 10),
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 6,
crossAxisSpacing: 2.w,
mainAxisSpacing: 2.w,
childAspectRatio: 1
),
itemBuilder: (BuildContext context, int index) {
return Container(
color: Colors.red,
child: Center(child: Text('图片')),
);
},
itemCount: 0,
),
),
Container(
color: Colors.red,
child: MediaQuery.removePadding(
context: context,
removeTop: true,
child: ListView.builder(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemBuilder: (BuildContext context, int index){
return Container(
height: 20.w,
margin: EdgeInsets.only(right: 130.w),
child: Container(
margin: EdgeInsets.only(top: 5.w),
padding: EdgeInsets.only(right:20.w,left: 10.w),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10.w),
color: Colours.cF9,
),
child: Row(
// mainAxisSize: MainAxisSize.min,
mainAxisAlignment:MainAxisAlignment.spaceBetween,
children: [
Image.asset('assets/images/audio.png'),
Text('0:00/1:52',style: TextStyle(fontSize: 10.w,height: 1.4,color: Colours.c9),)
],
),
),
);
},
itemCount: 0,
),
),
)
],
)
],
),
),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Row(
children: [
Image.asset('assets/images/read_add_img.png'),
Gaps.hGaps10,
Image.asset('assets/images/read_add_audio.png'),
],
),
GestureDetector(
onTap: (){},
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.w),
color: AppTheme.primary,
gradient: LinearGradient(
colors: [const Color(0xFFD53676).withOpacity(0.9),AppTheme.primary] , // 不可点击时的颜色,透明度为0.7
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
),
),
padding: EdgeInsets.symmetric(horizontal:13.5.w,vertical: 4.w),
child: Text('发表',style: TextStyle(fontSize: 14.w,fontWeight: Fonts.medium,color: Colors.white),),
),
)
],
)
],
)
);
}
}
...@@ -201,10 +201,11 @@ class _RequestInterceptor extends Interceptor { ...@@ -201,10 +201,11 @@ class _RequestInterceptor extends Interceptor {
final response = err.response; final response = err.response;
final statusCode = response?.statusCode; final statusCode = response?.statusCode;
print('************* ${response?.data}'); print('************* ${response?.data}');
print('******statusCode******* $statusCode');
// Console.log(response?.data); // Console.log(response?.data);
var msg = '服务器错误'; var msg = '服务器错误';
switch (statusCode) { switch (statusCode) {
case 401: case 403:
msg = '$statusCode - Unauthorized'; msg = '$statusCode - Unauthorized';
final newToken = await refreshToken(); final newToken = await refreshToken();
if (newToken != null) { if (newToken != null) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论