Как реализовать PlacesAutocompleteFragment в панели инструментов? - PullRequest
0 голосов
/ 24 января 2019

я на андроиде уже 2 недели. В качестве моего первого проекта я попытался настроить панель инструментов с переключателем и фрагментом placeautocomplete, а затем фрагментом карты. Так что карта работает нормально, панель инструментов тоже, кроме Placeautocompletefragment в нем. Во время отладки я обнаружил, что после инициализации фрагмента Placeautocomplete он все еще равен нулю.

Места и API карты активированы, ключ в манифесте.

Может, кто-нибудь подскажет, где я допустил ошибку и подскажите, как ее исправить? Я не могу установить слушателя на это значение NULL. Все сэмплы, которые я нашел в интернете, имеют фрагмент-менеджер, который устарел начиная с API 28, поэтому для меня фактически бесполезен.

Спасибо, пока.

Greetz

Редактировать: ativity_maps.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context=".MapsActivity">

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
                                   xmlns:tools="http://schemas.android.com/tools"
                                   xmlns:app="http://schemas.android.com/apk/res-auto"
                                   android:id="@+id/toolbar"
                                   android:layout_width="match_parent"
                                   android:layout_height="wrap_content"
                                   android:background="@color/colorPrimary"
                                   android:elevation="20dp"
                                   app:title="Fake GPS"
                                   android:visibility="visible">
    <fragment
            android:id="@+id/place_autocomplete_fragment"
            android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
    />
</android.support.v7.widget.Toolbar>

<fragment android:id="@+id/map"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:name="com.google.android.gms.maps.SupportMapFragment"/>

Mapsactivity.kot

class MapsActivity : AppCompatActivity(), OnMapReadyCallback {
 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_maps)
    val toolbar = findViewById<Toolbar>(R.id.toolbar)
    setSupportActionBar(toolbar)
    val mapFragment = supportFragmentManager
        .findFragmentById(R.id.map) as SupportMapFragment
mapFragment!!.getMapAsync(this)
}


  override fun onCreateOptionsMenu(menu: Menu): Boolean {
    menuInflater.inflate(R.menu.menu, menu)
    onOffSwitch = menu.findItem(R.id.switchIO).actionView as Switch
    onOffSwitch?.setOnCheckedChangeListener { _, isChecked -> (removed code here, cause unnecessary) }
    autocompleteFragment = supportFragmentManager.findFragmentById(R.id.place_autocomplete_fragment) as? PlaceAutocompleteFragment 

}

}

...