iOS Flutter — как изменить размер строки emoji?

#ios #flutter #alignment

#iOS #flutter #выравнивание

Вопрос:

В моем приложении не возникает проблемы с выравниванием в примерах, которые я покажу ниже, при работе на устройствах Android. Когда я хочу запустить его на своем устройстве iOS, у меня возникает следующая проблема с выравниванием.

Здесь начинается проблемное выравнивание. Мое приложение претерпевает полностью симметричные изменения, когда я выбираю персидский или арабский язык, и некоторые смайлики выровнены правильно, в то время как другие выглядят искаженными.

введите описание изображения здесь

Здесь начинается проблемное выравнивание. Мое приложение претерпевает полностью симметричные изменения, когда я выбираю персидский или арабский язык, и некоторые смайлики выровнены правильно, в то время как другие выглядят искаженными.

Мой код :

 Widget build(BuildContext context) {
return Scaffold(
  appBar: AppBar(
    backgroundColor: ortaMavi,
    leading: IconButton(
        onPressed: () {
          Navigator.of(context).pop();
        },
        icon: Icon(
          Icons.arrow_back_ios,
          size: 20,
          color: Colors.white,
        )),
    title: Center(child: Text(titleHolder)),
    actions: <Widget>[
      Center(
        child: Container(
            margin: EdgeInsets.all(15),
            child: Text(
              flagHolder,
              style: TextStyle(fontSize: 25),
            )),
      )
    ],
  ),
  body: SafeArea(
    child: ListView.builder(
        padding: const EdgeInsets.symmetric(vertical: 5),
        itemCount: countries.length,
        itemBuilder: (BuildContext context, int index) {
          return GestureDetector(
            onTap: () {
              EasyLocalizationProvider.of(context)
                  .data
                  .changeLocale(langs[index]);
              setState(() {
                titleHolder = countries[index];
                flagHolder = flags[index];
                selectedLangIndex = index;
              });
            },
            child: Container(
              decoration: BoxDecoration(
                color:
                    selectedLangIndex != null amp;amp; selectedLangIndex == index
                        ? ortaMavi.withOpacity(0.2)
                        : Colors.white,
                boxShadow: [
                  BoxShadow(
                    color: Colors.lightBlueAccent.withOpacity(0.5),
                    spreadRadius: 2,
                    blurRadius: 3,
                    offset: Offset(0, 3), // changes position of shadow
                  ),
                ],
              ),
              height: 50,
              child: Padding(
                padding: EdgeInsets.symmetric(horizontal: 15),
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: <Widget>[
                    Text(
                      '${countries[index]}',
                      style: TextStyle(
                          fontSize: 20,
                          color: selectedLangIndex != null amp;amp;
                                  selectedLangIndex == index
                              ? Colors.white
                              : Colors.black),
                    ),
                    Text(
                      flags[index],
                      style: TextStyle(fontSize: 25),
                    )
                  ],
                ),
              ),
            ),
          );
        }),
  ),
);
 

}

Комментарии:

1. если это возможно, пожалуйста, поделитесь своим кодом

2. Конечно. Я добавлю код.

3. вы пытались обернуть свой текстовый виджет с Directionality помощью?

Ответ №1:

Вы можете поместить строку flags в SizedBox

 SizedBox(
  width: 200.0,
  height: 200.0,
  child:Text(
        flags[index],
    ),
)