Flutter RTL AppBar 图标位置

Posted

技术标签:

【中文标题】Flutter RTL AppBar 图标位置【英文标题】:Flutter RTL AppBar Icon postion 【发布时间】:2019-08-08 03:52:06 【问题描述】:

我要求的是在 appBar 中添加一个图标在颤振中......我已经激活了本地化属性,所以我的应用程序现在是 RTL

  localizationsDelegates: [
      GlobalMaterialLocalizations.delegate,
      GlobalWidgetsLocalizations.delegate,
    ],
    supportedLocales: [
      Locale("ar", "AR"), // OR Locale('ar', 'AE') OR Other RTL locales
    ],
    locale: Locale("ar", "AR"), // OR Locale('ar', 'AE') OR Other RTL locales

...问题是右侧的抽屉菜单图标是正确的...但是当我在 appBar 的前导属性中添加图标时,它不会转到左侧...但它取代了抽屉图标! !!

// 应用栏

  appBar: new AppBar(

    leading: Icon(Icons.person,),

    title: new Text("الرئيسية",
      style: new TextStyle(fontFamily: 'RPT Bold',
      fontSize: 16.0,
        color: Colors.amber
      ),
    ),
    centerTitle: true,
    iconTheme: new IconThemeData(color: Colors.amber),
  ),

最好的问候

【问题讨论】:

这可能值得an issue。 【参考方案1】:

automaticallyImplyLeading 设置为假:

appBar: new AppBar(
    automaticallyImplyLeading: false,
    leading: Icon(Icons.person,),
    title: new Text("الرئيسية",
   style: new TextStyle(fontFamily: 'RPT Bold',
   fontSize: 16.0,
     color: Colors.amber
   ),
 ),
 centerTitle: true,
 iconTheme: new IconThemeData(color: Colors.amber),
),

【讨论】:

谢谢,但是.. 没有任何改变!! 尝试将您的图标放在操作属性中,也许这就是您要寻找的东西 是的......这是工作......当我将它添加到动作中时,它会正确显示【参考方案2】:

您可以使用Directionality 包裹您的脚手架并将文本方向设置为RTL。 这种方式不需要本地化属性。

 Widget build(BuildContext context) 
    return Directionality(
      textDirection: TextDirection.rtl,
      child: Scaffold(
          appBar: AppBar(
            centerTitle: true,
            title: Text('title'),
          ),
          body: Container(child: Text('text',
        ),
       ),
      ),
    );
  

【讨论】:

以上是关于Flutter RTL AppBar 图标位置的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 的 AppBar 中有可点击的文本

如何在 AppBar 中包装子小部件以获得更大的子高度和 Flutter 中的填充

Flutter AppBar(顶端栏)

Flutter——AppBar组件(顶部导航组件)

如何在 Flutter 的 appbar 之外添加 endDrawer?

点击 AppBar 打开抽屉