Мне нужно создать текст на левой стороне В настоящее время он находится в центре. Как я это оставил? - PullRequest
0 голосов
/ 01 марта 2020

Мне нужен этот текст для создания слева. Я создал простой пользовательский интерфейс, используя флаттер . У меня проблема. Мне нужно это Создать

Текст слева . Я не добавил центральный тег к своему коду, но когда я добавляю devider к своему коду, текст автоматически отображается в центре. Я хочу разделитель, но я также хочу этот текст на выровнять по левому краю ? Как я могу это сделать?

Мой код Флаттер

     return   Scaffold(
       resizeToAvoidBottomPadding: false,
       resizeToAvoidBottomInset: true,
        appBar: AppBar(
         elevation: 0,
          backgroundColor: Colors.white,
          title: new Center(child: new Text('Create',style: TextStyle(fontFamily: "Montserrat", color: Colors.black))),
    leading: GestureDetector(
    onTap: () { },
    child: Icon(
      Icons.arrow_back, 
      color: Colors.black, 
    ),
    ),
       ),
      backgroundColor: Colors.white,
      body: GestureDetector(
        child: new SingleChildScrollView(
       child: Column(
         children: <Widget>[
            Align(
      alignment: Alignment.centerLeft,
            ),
           Divider(
              height: 2,
          color: Colors.red,
          ),
            SizedBox(
            height: 17.0,
            ),
        Container(
            // margin: new EdgeInsetsDirectional.only(start: 1.0, end: 1.0),

             child: Text('Create')
           )
         ],
       )

          ),

      ),
    );
  }
}

Screenshot

Ответы [ 4 ]

0 голосов
/ 01 марта 2020

Добавьте эту строку в ваш текстовый контейнер.

alignment: Alignment.centerLeft,

пример:

Container(
     alignment: Alignment.centerLeft,
     child: Text('Create'),
)
0 голосов
/ 01 марта 2020

Добавьте это к вашему столбцу

mainAxisSize: MainAxisSize.max,

и это к вашему текстовому контейнеру

alignment: Alignment.centerLeft,

Таким образом, весь код будет таким

     return   Scaffold(
       resizeToAvoidBottomPadding: false,
       resizeToAvoidBottomInset: true,
        appBar: AppBar(
         elevation: 0,
          backgroundColor: Colors.white,
          title: new Center(child: new Text('Create',style: TextStyle(fontFamily: "Montserrat", color: Colors.black))),
    leading: GestureDetector(
    onTap: () { },
    child: Icon(
      Icons.arrow_back, 
      color: Colors.black, 
    ),
    ),
       ),
      backgroundColor: Colors.white,
      body: GestureDetector(
        child: new SingleChildScrollView(
       child: Column(
         mainAxisSize: MainAxisSize.max,
         children: <Widget>[
            Align(
      alignment: Alignment.centerLeft,
            ),
           Divider(
              height: 2,
          color: Colors.red,
          ),
            SizedBox(
            height: 17.0,
            ),
        Container(
            // margin: new EdgeInsetsDirectional.only(start: 1.0, end: 1.0),

             alignment: Alignment.centerLeft,
             child: Text('Create')
           )
         ],
       )

          ),

      ),
    );
  }
}
0 голосов
/ 01 марта 2020

Вы должны передать контейнер как дочерний элемент Align. Если вы хотите выровнять каждый элемент по левому краю, вы можете просто использовать:

Column(
crossAxisAlignment:CrossAxisAlignment.start,
children:[])
0 голосов
/ 01 марта 2020

Так что я никогда не использовал флаттер, но как разработчик внешнего интерфейса я могу предложить это. Есть две причины, почему это может происходить. Либо текст находится в контейнере, который не выровнен по левому краю, либо объект Text не выровнен по левому краю.

Чтобы go исправить это, первое, что я хотел бы сделать, это обвести границы вокруг всего, чтобы я мог выяснить причину этой проблемы. Это означает добавление стиля «border: 2px solid green» или любого варианта текста (и, возможно, в конечном итоге что-то вроде выравнивания текста, а также добавление границы к самому контейнеру (и, возможно, изменение его ширины или поиск другого метода для изменить это)

...