Как изменить текстовое поле флаттера дважды после использования одного контроллера редактирования текста - PullRequest
0 голосов
/ 17 июня 2020

У меня есть текстовое поле, которое меняет свой текст после действия, но проблема в том, что я хочу изменить одно и то же текстовое поле дважды, но я могу сделать это только с одного контроллера редактирования текста, как я могу изменить то же текстовое поле из две разные функции? Работает только один контроллер редактирования текста, если я использую один и тот же контроллер в другой функции для другого использования, он не работает, что делать? Спасибо

вот код, я сначала объявил контроллер редактирования текста

class MapSampleState extends State < MapSample > {

String _userDestination =" ";
Completer<GoogleMapController> _controller = Completer();
var locationText = TextEditingController();
var locationText2 = TextEditingController();

затем назначил его своему полю редактирования текста

Align(
        alignment: Alignment.topLeft,

  child: Container(


         height:50,
                    width: 50, margin: EdgeInsets.only(left: 10, top: 100,bottom: 20,right: 10),

                    child: Align (alignment: Alignment.topRight,

         child: new FloatingActionButton(onPressed:clearMyMap,
             heroTag: "btn1",
         tooltip: "Cancel Trip",
         backgroundColor:Colors.white,
         child: Icon(Icons.cancel, color:Colors.black,),
         ),
                    )
      )

),

это первое место Я использую контроллер редактирования текста locatonText

void _getLatLng(Prediction prediction) async {
    GoogleMapsPlaces _places = new 
       GoogleMapsPlaces(apiKey:"AIzaSyD8lTNVJ5LLPYSdahUh9tlO8rFeskzZw8E");  //Same API_KEY as above

if (prediction!=null ){

    PlacesDetailsResponse detail =
        await _places.getDetailsByPlaceId(prediction.placeId);
    double latitude = detail.result.geometry.location.lat;
    double longitude = detail.result.geometry.location.lng;
    String address = prediction.description;
    print("+++++++++++++++++++++++++++++++address+++++++++++++++++++++++++++++++++++++++++++++++++++");
appState.sendRequest(address);
    locationText.text ="$address";

  }


}

это второе место, где я использую контроллер редактирования текста locatonText

void clearMyMap(){


appState.clearMap();
locationText.clear();




}
...