[GO] So verwenden Sie Map in ViewPager von Android

Verwenden Sie zum Platzieren einer Karte in einem ViewPager den FragmentStatePagerAdapter als ViewPager-Adapter und geben Sie das Fragment folgendermaßen zurück.

Der Beispielcode für jeden ist auf [GitHub] verfügbar (https://github.com/hitting1024/MapInPagerViewSample). Der Umriss ist unten dargestellt.

Gibt MapFragment zurück

Diese Methode ist am einfachsten, wenn Sie nur Map in ViewPager anzeigen möchten.

Der Beispielcode gibt [SupportMapFragment] zurück (https://developers.google.com/android/reference/com/google/android/gms/maps/SupportMapFragment).

MapFragmentPagerAdapter

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

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

    // omitted

}

Gibt ein Fragment mit einer ListView und einer selbstgemachten Zelle in der ListView zurück

Es ist eine Methode, um ListView auf jeder Seite von ViewPager anzuzeigen und Map in der selbst erstellten Zelle in ListView anzuzeigen. Für Homebrew-Zellen wird View in FrameLayout definiert und im Konstruktor SupportMapFragment hinzugefügt.

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)
    }

}

Gibt ein Fragment mit einem FrameLayout zurück

So definieren Sie ein FrameLayout im Layout jeder Seite von ViewPager und fügen SupportMapFragment hinzu. Verwenden Sie zu diesem Zeitpunkt ** childFragmentManager ** anstelle von 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

}

Referenz

Recommended Posts

So verwenden Sie Map in ViewPager von Android
Verwendung von Klassen in Theano
Verwendung von SQLite in Python
Wie man MySQL mit Python benutzt
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Verwendung berechneter Spalten in CASTable
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Verwendung von Google Test in C-Sprache
Verwendung von Anacondas Interpreter mit PyCharm
Verwendung von __slots__ in der Python-Klasse
Verwendung regulärer Ausdrücke in Python
Verwendung ist und == in Python
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
Verwendung von Pandas 2
Verwendung von numpy.vectorize
Verwendung von pytest_report_header
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von IPython
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?
Verwendung der Liste []
Wie man Python-Kabusapi benutzt
Verwendung von OptParse
Verwendung von return
Wie man Imutils benutzt
So zeigen Sie eine Karte mit der Google Map API (Android) an
Verwendung der C-Bibliothek in Python
Verwendung der Python-Bildbibliothek in der Python3-Serie
Verwendung von Python Kivy ④ ~ Ausführung unter Android ~
Zusammenfassung der Verwendung von MNIST mit Python
Wie man tkinter mit Python in Pyenv benutzt
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Verwendung von Qt Designer
Verwendung der Suche sortiert
[gensim] Verwendung von Doc2Vec
python3: Verwendung der Flasche (2)
Verwendung des Generators
[Python] Verwendung von Liste 1
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
Wie benutzt man Python Argparse?
Verwendung von IPython Notebook
Wie man Pandas Rolling benutzt