[GO] Comment utiliser Map dans ViewPager d'Android

Pour placer une carte dans un ViewPager, utilisez le FragmentStatePagerAdapter comme adaptateur ViewPager et renvoyez le fragment de la manière suivante.

L'exemple de code pour chacun est disponible sur GitHub. Le contour est présenté ci-dessous.

Renvoie MapFragment

Cette méthode est la plus simple si vous souhaitez afficher uniquement la carte dans ViewPager.

L'exemple de code renvoie SupportMapFragment.

MapFragmentPagerAdapter

class MapFragmentPagerAdapter(fragmentManager: FragmentManager) : FragmentStatePagerAdapter(fragmentManager) {

    override fun getItem(position: Int): Fragment {
        return SupportMapFragment.newInstance()
    }

    // omitted

}

Renvoie un fragment avec un ListView et une cellule maison dans le ListView

C'est une méthode pour afficher ListView sur chaque page de ViewPager et afficher Map dans la cellule auto-créée dans ListView. Pour les cellules homebrew, View est défini dans FrameLayout et SupportMapFragment y est ajouté dans le constructeur.

MapListViewAdapter

class MapListViewAdapter(private val context: Context, private val fragmentManager: FragmentManager) : BaseAdapter() {

    private val inflater = LayoutInflater.from(context)

    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
        
        // omitted

        val mapView = MyMapView(this.context, this.fragmentManager)
        val layoutParams = FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, 500)
        mapView.layoutParams = layoutParams
        return mapView
    }

    // omitted

}

MyMapView

class MyMapView(context: Context, fragmentManager: FragmentManager) : FrameLayout(context) {

    init {
        val inflater = LayoutInflater.from(context)
        val layoutView = inflater.inflate(R.layout.view_map, null)
        val view = layoutView.mapFrameLayout

        val mapFragment = SupportMapFragment.newInstance()
        fragmentManager.beginTransaction().add(view.id, mapFragment).commit()
        mapFragment.getMapAsync {
            // nothing
        }

        this.addView(layoutView)
    }

}

Renvoie un fragment avec un FrameLayout

Comment définir un FrameLayout dans la mise en page de chaque page de ViewPager et y ajouter SupportMapFragment. À ce stade, utilisez ** childFragmentManager ** au lieu de fragmentManager.

MapPagerFragment

class MapPagerFragment : Fragment() {

    override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        val view = inflater!!.inflate(R.layout.fragment_map_pager, container, false)
        val mapView = view.mapView
        val mapFragment = SupportMapFragment.newInstance()
        this.childFragmentManager.beginTransaction().add(mapView.id, mapFragment).commit()
        mapFragment.getMapAsync {
            // nothing
        }
        return view
    }

    // omitted

}

référence

Recommended Posts

Comment utiliser Map dans ViewPager d'Android
Comment utiliser les classes dans Theano
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment utiliser les colonnes calculées dans CASTable
[Introduction à Python] Comment utiliser la classe en Python?
Comment utiliser Google Test en langage C
Comment utiliser l'interpréteur d'Anaconda avec PyCharm
Comment utiliser __slots__ dans la classe Python
Comment utiliser les expressions régulières en Python
Comment utiliser is et == en Python
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser virtualenv
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Comment utiliser Pandas 2
Comment utiliser numpy.vectorize
Comment utiliser pytest_report_header
Comment utiliser partiel
Comment utiliser Bio.Phylo
Comment utiliser SymPy
Comment utiliser x-means
Comment utiliser WikiExtractor.py
Comment utiliser IPython
Comment utiliser iptables
Comment utiliser numpy
Comment utiliser TokyoTechFes2015
Comment utiliser venv
Comment utiliser le dictionnaire {}
Comment utiliser Pyenv
Comment utiliser la liste []
Comment utiliser python-kabusapi
Comment utiliser OptParse
Comment utiliser le retour
Comment utiliser pyenv-virtualenv
Comment utiliser imutils
Comment afficher la carte à l'aide de l'API Google Map (Android)
Comment utiliser la bibliothèque C en Python
Comment utiliser la bibliothèque d'images Python dans la série python3
Comment utiliser Python Kivy ④ ~ Exécution sur Android ~
Résumé de l'utilisation de MNIST avec Python
Comment utiliser tkinter avec python dans pyenv
[Pour les débutants] Comment utiliser la commande say avec python!
Comment utiliser Qt Designer
Comment utiliser la recherche triée
[gensim] Comment utiliser Doc2Vec
python3: Comment utiliser la bouteille (2)
Comment utiliser le générateur
[Python] Comment utiliser la liste 1
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Comment utiliser Python Argparse
Comment utiliser IPython Notebook
Comment utiliser Pandas Rolling