如何从Flutter中的RichText检索文本值?

huangapple go评论114阅读模式
英文:

How to retrieve text value from RichText in flutter?

问题

以下是Flutter代码部分的翻译:

  1. Column(
  2. mainAxisAlignment: MainAxisAlignment.center,
  3. crossAxisAlignment: CrossAxisAlignment.start,
  4. children: <Widget>[
  5. Padding(
  6. padding:
  7. const EdgeInsets.only(bottom: LuminaSpacing.extraTiny),
  8. child: RichText(
  9. key: Key('last_updated'),
  10. textAlign: TextAlign.end,
  11. text: TextSpan(
  12. text: '${_localize.last_updated}: ',
  13. style: wldTheme.textTheme.display1,
  14. children: <TextSpan>[
  15. TextSpan(
  16. text: '${settingStore.lastCheckinTime}',
  17. style: wldTheme.textTheme.body1),
  18. ],
  19. ),
  20. ),
  21. ),

以下是Appium Java代码部分的翻译:

  1. FlutterFinder ele = new FlutterFinder(driver);
  2. System.out.println("Last update: "+ele.byValueKey("last_update"));
  3. // System.out.println("Last update: "+ele.byValueKey("last_update").getText()); // It waits for long duration

输出结果为:

  1. Last update: [pro.truongsinh.appium_flutter.finder.FlutterElement@870fb657 -> unknown locator]
英文:

Here's the Flutter code:

  1. Column(
  2. mainAxisAlignment: MainAxisAlignment.center,
  3. crossAxisAlignment: CrossAxisAlignment.start,
  4. children: &lt;Widget&gt;[
  5. Padding(
  6. padding:
  7. const EdgeInsets.only(bottom: LuminaSpacing.extraTiny),
  8. child: RichText(
  9. key: Key(&#39;last_updated&#39;),
  10. textAlign: TextAlign.end,
  11. text: TextSpan(
  12. text: &#39;${_localize.last_updated}: &#39;,
  13. style: wldTheme.textTheme.display1,
  14. children: &lt;TextSpan&gt;[
  15. TextSpan(
  16. text: &#39;${settingStore.lastCheckinTime}&#39;,
  17. style: wldTheme.textTheme.body1),
  18. ],
  19. ),
  20. ),
  21. ),

I'm using appium with java to automate my test cases

Here's my code:

  1. FlutterFinder ele = new FlutterFinder(driver);
  2. System.out.println(&quot;Last update: &quot;+ele.byValueKey(&quot;last_update&quot;));
  3. // System.out.println(&quot;Last update: &quot;+ele.byValueKey(&quot;last_update&quot;).getText()); // It waits for long duration

The output I get is

  1. Last update: [pro.truongsinh.appium_flutter.finder.FlutterElement@870fb657 -&gt; unknown locator]

答案1

得分: 1

你需要创建一个类似这样的控制器:var textController = TextEditingController();,并将控制器与你的RichText小部件关联起来,使用这个控制器你可以这样获取文本的值:textController.text

英文:

you need to create a controller like this: var textController = TextEditingController(); and aggregate the controller to your RichText widget, with this controller you can get the value of the text like this: textController.text

huangapple
  • 本文由 发表于 2020年1月30日 19:26:10
  • 转载请务必保留本文链接:https://go.coder-hub.com/59984958.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定