第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用Maps API v2以編程方式初始化MapFragment

使用Maps API v2以編程方式初始化MapFragment

慕后森 2019-12-18 16:14:19
我正在嘗試將MapFragment添加到當(dāng)前的Fragment中。嵌套片段的使用僅限于FragmentTransactions,您不能在布局中使用xml標(biāo)記。另外,我希望在用戶按下按鈕時(shí)將其添加到主片段中。因此,getInstance()當(dāng)用戶按下該按鈕并將其添加到正確的位置時(shí),我將以編程方式創(chuàng)建MapFragment 。正確顯示,到目前為止效果很好。問題在于,在附加MapFragment之后,我需要獲取GoogleMap 放置Marker的引用,但是該getMap()方法返回null(因?yàn)閛nCreateView()尚未調(diào)用該片段)。我看了看演示示例代碼,我發(fā)現(xiàn)他們使用的初始化MapFragment的解決方案onCreate(),并獲得在參考GoogleMap的onResume(),之后onCreateView()被調(diào)用。我需要在MapFragment初始化之后立即獲取對(duì)GoogleMap的引用,因?yàn)槲蚁M脩裟軌蚴褂冒粹o顯示或隱藏地圖。我知道一個(gè)可能的解決方案是如上所述在地圖的開頭創(chuàng)建Map,然后設(shè)置其可見性消失,但是我希望該地圖默認(rèn)情況下處于關(guān)閉狀態(tài),因此如果用戶未明確要求,則不會(huì)占用用戶的帶寬為了它。我嘗試使用MapsInitializer,但也不起作用。我有點(diǎn)卡住。有任何想法嗎?到目前為止,這是我的測(cè)試代碼:public class ParadaInfoFragment extends BaseDBFragment {// BaseDBFragment is just a SherlockFragment with custom utility methods.private static final String MAP_FRAGMENT_TAG = "map";private GoogleMap mMap;private SupportMapFragment mMapFragment;private TextView mToggleMapa;private boolean isMapVisible = false;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {    View v = inflater.inflate(R.layout.fragment_parada_info, container, false);    mToggleMapa = (TextView) v.findViewById(R.id.parada_info_map_button);    return v;}@Overridepublic void onStart() {    super.onStart();    mToggleMapa.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            if (!isMapVisible) {                openMap();            } else {                closeMap();            }            isMapVisible = !isMapVisible;        }    });}
查看完整描述

3 回答

?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

謝謝,發(fā)現(xiàn)這很有幫助。我正在發(fā)布我稍作修改的解決方案,因?yàn)楫?dāng)?shù)貓D準(zhǔn)備好時(shí),我可以更清楚地告訴父Fragment。此方法還可以與saveInstanceState / restoreInstanceState周期一起使用。


public class CustomMapFragment extends SupportMapFragment {


    private static final String LOG_TAG = "CustomMapFragment";


    public CustomMapFragment() {

        super();


    }


    public static CustomMapFragment newInstance() {

        CustomMapFragment fragment = new CustomMapFragment();

        return fragment;

    }


    @Override

    public View onCreateView(LayoutInflater arg0, ViewGroup arg1, Bundle arg2) {

        View v = super.onCreateView(arg0, arg1, arg2);

        Fragment fragment = getParentFragment();

        if (fragment != null && fragment instanceof OnMapReadyListener) {

            ((OnMapReadyListener) fragment).onMapReady();

        }

        return v;

    }




    /**

     * Listener interface to tell when the map is ready

     */

    public static interface OnMapReadyListener {


        void onMapReady();

    }

}

用作嵌套片段:-


public class ParentFragment extends Fragment implements OnMapReadyListener {


    ...


    mMapFragment = CustomMapFragment.newInstance();

    getChildFragmentManager().beginTransaction().replace(R.id.mapContainer, mMapFragment).commit();


    @Override

    public void onMapReady() {

        mMap = mMapFragment.getMap();

    }

    ...

}

希望它可以幫助某人。


查看完整回答
反對(duì) 回復(fù) 2019-12-18
  • 3 回答
  • 0 關(guān)注
  • 493 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)