SelectableText.rich 选择的背景颜色,而不是 TextStyle

Posted

技术标签:

【中文标题】SelectableText.rich 选择的背景颜色,而不是 TextStyle【英文标题】:SelectableText.rich background color of selection, not of TextStyle 【发布时间】:2021-09-17 08:18:09 【问题描述】:

我希望 SelectableText.rich 中的 TextSpan 在选择时具有正常的蓝色,尽管在其 TextStyle 中指定了 backgroundColor。我该怎么做?

这里有一些不利于重现性的代码:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget 
  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      title: 'Test',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  


class MyHomePage extends StatefulWidget 
  @override
  _MyHomePageState createState() => _MyHomePageState();


class _MyHomePageState extends State<MyHomePage> 
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(),
      body: Center(child: SelectableText.rich(TextSpan(children: [
          TextSpan(text: 'Some good old text for selection purposes',style: TextStyle(backgroundColor: Colors.grey),),
          TextSpan(text: 'The right background color')
        ]
      ))));
  

以及我想防止发生的行为的屏幕截图:

【问题讨论】:

***.com/questions/54656386/… 【参考方案1】:

您可以为 TextSpan 样式颜色添加不透明度。

例子:

  TextSpan(
    text: 'texto',
    style: TextStyle(
      backgroundColor: Colors.yellow.withOpacity(0.3),
    ),
  ),

【讨论】:

以上是关于SelectableText.rich 选择的背景颜色,而不是 TextStyle的主要内容,如果未能解决你的问题,请参考以下文章

word表格背景颜色设置 word表格如何设置背景颜色

用JavaScript添加选择按钮的背景颜色和juqery添加选择按钮的背景色

ExtJS 通过按下背景取消选择一行

选择具有特定背景颜色的元素

input 选择框改变背景小技巧

背景选择器