Форум программистов, компьютерный форум CyberForum.ru

Запутался в фрагментах и транзакциях с GoogleMaps? - Android

Войти
Регистрация
Восстановить пароль
 
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 405
27.02.2016, 17:59     Запутался в фрагментах и транзакциях с GoogleMaps? #1
есть активити, в которой по кнопке меняются фрагменты (их пока всего два), один из этих фрагментов карта Гугл, когда по кнопке меняю на второй все ок но если опять первый щелкнуть то вылетает проблем и ругается на inflate :

Ошиба:
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
FATAL EXCEPTION: main
                                                                    Process: com.dis., PID: 12316
                                                                    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dis./com.dis..MainActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class fragment
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2358)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2410)
                                                                        at android.app.ActivityThread.access$800(ActivityThread.java:155)
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:110)
                                                                        at android.os.Looper.loop(Looper.java:193)
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5395)
                                                                        at java.lang.reflect.Method.invokeNative(Native Method)
                                                                        at java.lang.reflect.Method.invoke(Method.java:515)
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:653)
                                                                        at dalvik.system.NativeStart.main(Native Method)
                                                                     Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class fragment
                                                                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
                                                                        at com.dis..MapGoogle.onCreateView(MapGoogle.java:33)
                                                                        at android.app.Fragment.performCreateView(Fragment.java:1700)
                                                                        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
                                                                        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1040)
                                                                        at android.app.Activity.onCreateView(Activity.java:4851)
                                                                        at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:34)
                                                                        at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
                                                                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
                                                                        at com.dis..MapGoogle.onCreateView(MapGoogle.java:33)
                                                                        at android.app.Fragment.performCreateView(Fragment.java:1700)
                                                                        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
                                                                        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
                                                                        at android.app.BackStackRecord.run(BackStackRecord.java:698)
                                                                        at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
                                                                        at android.app.Activity.performStart(Activity.java:5286)
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2410)*
                                                                        at android.app.ActivityThread.access$800(ActivityThread.java:155)*
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)*
                                                                        at android.os.Handler.dispatchMessage(Handler.java:110)*
                                                                        at android.os.Looper.loop(Looper.java:193)*
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5395)*
                                                                        at java.lang.reflect.Method.invokeNative(Native Method)*
                                                                        at java.lang.reflect.Method.invoke(Method.java:515)*
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)*
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:653)*
                                                                        at dalvik.system.NativeStart.main(Native Method)*
                                                                     Caused by: java.lang.IllegalArgumentException: Binary XML file line #8: Duplicate id 0x7f0c0089, tag null, or parent id 0x7f0c006e with another fragment for com.google.android.gms.maps.MapFragment
                                                                        at android.app.Activity.onCreateView(Activity.java:4837)
                                                                        at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:34)
                                                                        at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
                                                                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:469)*
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)*
                                                                        at com.dis..MapGoogle.onCreateView(MapGoogle.java:33)*
                                                                        at android.app.Fragment.performCreateView(Fragment.java:1700)*
                                                                        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)*
                                                                        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1040)*
                                                                        at android.app.Activity.onCreateView(Activity.java:4851)*
                                                                        at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:34)*
                                                                        at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)*
                                                                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)*
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:469)*
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)*
                                                                        at com.dis..MapGoogle.onCreateView(MapGoogle.java:33)*
                                                                        at android.app.Fragment.performCreateView(Fragment.java:1700)*
                                                                        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)*
                                                                        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)*
                                                                        at android.app.BackStackRecord.run(BackStackRecord.java:698)*
                                                                        at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)*
                                                                        at android.app.Activity.performStart(Activity.java:5286)*
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)*
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2410)*
                                                                        at android.app.ActivityThread.access$800(ActivityThread.java:155)*
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)*
                                                                        at android.os.Handler.dispatchMessage(Handler.java:110)*
                                                                        at android.os.Looper.loop(Looper.java:193)*
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5395)*
                                                                        at java.lang.reflect.Method.invokeNative(Native Method)*
                                                                        at java.lang.reflect.Method.invoke(Method.java:515)*
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)*
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:653)*
                                                                        at dalvik.system.NativeStart.main(Native Method)*


Иксамэль:
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
 
<fragment 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"
    android:id="@+id/gmap"
    tools:context=".MapGoogle"
    android:name="com.google.android.gms.maps.MapFragment" />
 
    </LinearLayout>


Фрагмент MapGoogle:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class MapGoogle extends Fragment implements OnMapReadyCallback {
MainActivity ma;
    private Boolean isFabOpen = false;
    private GoogleMap mMap;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.maps_google, container, false);
 
        MapFragment mapFragment = (MapFragment) getFragmentManager()
                .findFragmentById(R.id.gmap);
        mapFragment.getMapAsync(this);
 
        return view;
    }
 
 
    @Override
    public void onMapReady(GoogleMap googleMap) {
        googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(0, 0))
                .title("Marker"));
    }
}


МэйнАктивити (где показываются эти фрагменты):
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
mapGoogle = new MapGoogle(); //фрагмент 1
        ChtotoEcshe = new ChtotoEcshe(); //фрагмент 2
        ft = getFragmentManager().beginTransaction();
 
        ft.setCustomAnimations(
                R.anim.card_flip_right_in, R.anim.card_flip_right_out,
                R.anim.card_flip_left_in, R.anim.card_flip_left_out);
//  ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
        ft.add(R.id.container_body, mapGoogle);
 
        //ft.replace(R.id.container_body, mapGoogle);
        ft.addToBackStack(null);
        ft.commit();
//.... далее их замена кнопкой
 
case R.id.button1:
                ft.replace(R.id.container_body, ChtotoEcshe); //все гуд меняется
//....
 case R.id.button2:
                ft.replace(R.id.container_body, mapGoogle); //происходит ошибка


ошибка ссылается на эту строку в MapGoogle -
Java
1
View view = inflater.inflate(R.layout.maps_google, container, false);
что не так может быть, подскажите пожалуйста?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 405
29.02.2016, 10:10  [ТС]     Запутался в фрагментах и транзакциях с GoogleMaps? #2
?
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
29.02.2016, 10:25     Запутался в фрагментах и транзакциях с GoogleMaps? #3
Цитата Сообщение от disx Посмотреть сообщение
<fragment
По-моему, это для статических фрагментов. Для динамических используйте FrameLayout или другие контейнеры.
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 405
29.02.2016, 11:54  [ТС]     Запутался в фрагментах и транзакциях с GoogleMaps? #4
CoolMind, т.е. так:

XML
1
2
3
4
5
6
7
<FrameLayout 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"
    android:id="@+id/gmap"
    tools:context=".MapGoogle"
    android:name="com.google.android.gms.maps.MapFragment" />
тогда при запуске такая вылетает:

Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
FATAL EXCEPTION: main
                                                                Process: com.dis.pro, PID: 396
                                                                java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dis.pro/com.dis.pro.MainActivity}: java.lang.NullPointerException
                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2358)
                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2410)
                                                                    at android.app.ActivityThread.access$800(ActivityThread.java:155)
                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)
                                                                    at android.os.Handler.dispatchMessage(Handler.java:110)
                                                                    at android.os.Looper.loop(Looper.java:193)
                                                                    at android.app.ActivityThread.main(ActivityThread.java:5395)
                                                                    at java.lang.reflect.Method.invokeNative(Native Method)
                                                                    at java.lang.reflect.Method.invoke(Method.java:515)
                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)
                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:653)
                                                                    at dalvik.system.NativeStart.main(Native Method)
                                                                 Caused by: java.lang.NullPointerException
                                                                    at com.dis.pro.MapGoogle.onCreateView(MapGoogle.java:37)
                                                                    at android.app.Fragment.performCreateView(Fragment.java:1700)
                                                                    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
                                                                    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
                                                                    at android.app.BackStackRecord.run(BackStackRecord.java:698)
                                                                    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
                                                                    at android.app.Activity.performStart(Activity.java:5286)
                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2410)*
                                                                    at android.app.ActivityThread.access$800(ActivityThread.java:155)*
                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)*
                                                                    at android.os.Handler.dispatchMessage(Handler.java:110)*
                                                                    at android.os.Looper.loop(Looper.java:193)*
                                                                    at android.app.ActivityThread.main(ActivityThread.java:5395)*
                                                                    at java.lang.reflect.Method.invokeNative(Native Method)*
                                                                    at java.lang.reflect.Method.invoke(Method.java:515)*
                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)*
                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:653)*
                                                                    at dalvik.system.NativeStart.main(Native Method)*
02-29 11:38:41.567 422-422/? E/Zygote: Zygote:  error closing descriptor
                                       libcore.io.ErrnoException: close failed: EBADF (Bad file number)
                                           at libcore.io.Posix.close(Native Method)
                                           at libcore.io.BlockGuardOs.close(BlockGuardOs.java:75)
                                           at com.android.internal.os.ZygoteInit.closeServerSocket(ZygoteInit.java:221)
                                           at com.android.internal.os.ZygoteConnection.handleChildProc(ZygoteConnection.java:879)
                                           at com.android.internal.os.ZygoteConnection.runOnce(ZygoteConnection.java:242)
                                           at com.android.internal.os.ZygoteInit.runSelectLoop(ZygoteInit.java:713)
                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:649)
                                           at dalvik.system.NativeStart.main(Native Method)
02-29 11:38:41.914 15211-15262/? E/MDM: [46259] b.run: Couldn't connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
02-29 11:38:41.973 367-367/? E/AuthorizationBluetoothService: Proximity feature is not enabled.
02-29 11:38:51.121 674-691/? E/WindowManager: Starting window AppWindowToken{439a7820 token=Token{4392be20 ActivityRecord{42e1f970 u0 com.dis.pro/.MainActivity t174}}} timed out
02-29 11:39:00.015 897-897/? E/MyTag: updateClock : 11:39
02-29 11:39:00.017 897-897/? E/MyTag: updateClock : 11:39
02-29 11:39:00.026 897-897/? E/MyTag: updateClock : 11:39
02-29 11:39:00.057 690-690/? E/Zygote: Zygote:  error closing descriptor
                                       libcore.io.ErrnoException: close failed: EBADF (Bad file number)
                                           at libcore.io.Posix.close(Native Method)
                                           at libcore.io.BlockGuardOs.close(BlockGuardOs.java:75)
                                           at com.android.internal.os.ZygoteInit.closeServerSocket(ZygoteInit.java:221)
                                           at com.android.internal.os.ZygoteConnection.handleChildProc(ZygoteConnection.java:879)
                                           at com.android.internal.os.ZygoteConnection.runOnce(ZygoteConnection.java:242)
                                           at com.android.internal.os.ZygoteInit.runSelectLoop(ZygoteInit.java:713)
                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:649)
                                           at dalvik.system.NativeStart.main(Native Method)


Добавлено через 12 минут
и так попробовал:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
 
<fragment 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"
    android:id="@+id/gmap"
    tools:context=".MapGoogle"
    android:name="com.google.android.gms.maps.MapFragment" />
 
    </FrameLayout>
загрузилось норм а дальше как в первом посте...
Паблито
резкий
1890 / 1624 / 505
Регистрация: 12.05.2014
Сообщений: 5,852
Завершенные тесты: 1
29.02.2016, 12:03     Запутался в фрагментах и транзакциях с GoogleMaps? #5
XML
1
android:name="com.google.android.gms.maps.SupportMapFragment"
не поможет?
ну и в коде где этот фрагмент находится, писать
Java
1
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.gmap);
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
29.02.2016, 12:08     Запутался в фрагментах и транзакциях с GoogleMaps? #6
Цитата Сообщение от disx Посмотреть сообщение
NullPointerException at com.dis.pro.MapGoogle.onCreateView(MapGoogle.java:37)
Что здесь? Уж могли бы поглядеть.
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 405
29.02.2016, 12:46  [ТС]     Запутался в фрагментах и транзакциях с GoogleMaps? #7
Паблито, попробую

CoolMind, дак гледел
Java
1
mapFragment.getMapAsync(this);
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
29.02.2016, 13:13     Запутался в фрагментах и транзакциях с GoogleMaps? #8
Цитата Сообщение от disx Посмотреть сообщение
дак гледел
дак чего же не написел?
Очевидно, mapFragment = null, т.е. вы его неправильно создаёте.
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 405
29.02.2016, 20:03  [ТС]     Запутался в фрагментах и транзакциях с GoogleMaps? #9
CoolMind, дак вродеж все по правильному, как в гугловом примере:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class MapGoogle extends Fragment implements OnMapReadyCallback {
MainActivity ma;
    private Boolean isFabOpen = false;
    private GoogleMap mMap;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.maps_google, container, false);
 
        MapFragment mapFragment = (MapFragment) getFragmentManager()
                .findFragmentById(R.id.gmap);
        mapFragment.getMapAsync(this);
 
        return view;
    }
 
 
    @Override
    public void onMapReady(GoogleMap googleMap) {
        googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(0, 0))
                .title("Marker"));
    }
}
единственное что там класс наследуется от FragmentActivity, но я тогда не понимаю как её в отображать в container'е основной активности?
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
01.03.2016, 10:55     Запутался в фрагментах и транзакциях с GoogleMaps? #10
disx, наверное, тема фрагментов вам ещё не очень знакома. Поэтому, думаю, оставьте, как есть из документации. Т.е. можно вернуть <fragment>.
FragmentActivity обязателен для использования с фрагментами, но у него есть множество наследников. Например, AppCompatActivity или ActionBarActivity. В этом случае используйте наследника.
Также можно использовать Support-библиотеки (для совместимости со старыми версиями Андроида). В этом случае в большинстве методов будет указано слово Support. Т.е. вам нужно определить у себя, какие библиотеки импортируете, не должно быть конфликтов (фрагменты - одной версии с FragmentManager и т.д.).
Честно говоря, долго разбираться, вам надо обязательно это сделать самостоятельно, я тоже много шишек набивал.
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 405
01.03.2016, 13:25  [ТС]     Запутался в фрагментах и транзакциях с GoogleMaps? #11
CoolMind, спасибо за поддержку, но таки нашел решение (правда не знаю на сколько оно изящное):

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
View view = inflater.inflate(R.layout.maps_google, container, false);
 
        try
        {
 
            // Gets the MapView from the XML layout and creates it
            mapView = (MapView) view.findViewById(R.id.gmap);
 
            mapView.onCreate(savedInstanceState);
            mapView.onResume();
            // Gets to GoogleMap from the MapView and does initialization stuff
            mMap = mapView.getMap();
            // Changing map type
            mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
            // googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
            // googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
            // googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
            // googleMap.setMapType(GoogleMap.MAP_TYPE_NONE);
 
            // Showing / hiding your current location
            mMap.setMyLocationEnabled(false);
 
            // Enable / Disable zooming controls
            mMap.getUiSettings().setZoomControlsEnabled(true);
 
            // Enable / Disable my location button
            mMap.getUiSettings().setMyLocationButtonEnabled(true);
 
            // Enable / Disable Compass icon
            mMap.getUiSettings().setCompassEnabled(true);
 
            // Enable / Disable Rotate gesture
            mMap.getUiSettings().setRotateGesturesEnabled(true);
 
            // Enable / Disable zooming functionality
            mMap.getUiSettings().setZoomGesturesEnabled(true);
 
            mMap.addMarker(new MarkerOptions()
                    .position(new LatLng(0, 0))
                    .title("Marker"));
 
            MapsInitializer.initialize(this.getActivity());
        }
        catch(Exception e)
        {
            System.out.println(e);
        }


а в Иксамэле поменять вместо fragment
XML
1
2
3
4
5
6
7
8
<com.google.android.gms.maps.MapView 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"
    android:id="@+id/gmap"
    tools:context="com.dis.pro.MapGoogle"
    android:name="com.google.android.gms.maps.MapFragment"
     />
и все теперь безошибочно крутится в container.
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
01.03.2016, 14:32     Запутался в фрагментах и транзакциях с GoogleMaps? #12
disx, я тоже когда-то парился таким вопросом. Это не то решение. Это для Maps v1. Вам нужны Maps v2, современные. И API_KEY для них будете получать.
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 405
02.03.2016, 12:35  [ТС]     Запутался в фрагментах и транзакциях с GoogleMaps? #13
CoolMind, понял, буду дальше ковыряться...

Добавлено через 21 час 21 минуту
CoolMind, все работает, вот так:

XML
1
2
3
4
5
6
7
8
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/gmap" />
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
public class MapGoogle extends Fragment {
private MapFragment mSupportMapFragment;
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.maps_google, container, false);
 
 
        mSupportMapFragment = (MapFragment)getChildFragmentManager().findFragmentById(R.id.gmap);
        if (mSupportMapFragment == null) {
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            mSupportMapFragment = MapFragment.newInstance();
            fragmentTransaction.replace(R.id.gmap, mSupportMapFragment).commit();
        }
 
        if (mSupportMapFragment != null) {
            mSupportMapFragment.getMapAsync(new OnMapReadyCallback() {
                @Override
                public void onMapReady(GoogleMap googleMap) {
                    if (googleMap != null) {
 
                        googleMap.getUiSettings().setAllGesturesEnabled(true);
 
                        //-> marker_latlng // MAKE THIS WHATEVER YOU WANT
 
                        CameraPosition cameraPosition = new CameraPosition.Builder().target(MOUNTAIN_VIEW).zoom(15.0f).build();
                        CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition);
                        googleMap.moveCamera(cameraUpdate);
 
                    }
 
                }
            });
        }


жалко что с API 17 в моем случае работает (анимации в транзакциях мешают), но учитывая статистику версий не парюсь особо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2016, 14:17     Запутался в фрагментах и транзакциях с GoogleMaps?
Еще ссылки по теме:

Android запутался с JSON
Android Всплывающее окно с GoogleMaps
Googlemaps + onBackPressed Android
Android NavigationView на фрагментах
Как добавить динамически в ToolBar виджет SearchView в нужных фрагментах Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
02.03.2016, 14:17     Запутался в фрагментах и транзакциях с GoogleMaps? #14
disx, ну вот, совсем другое дело!
Не совсем понял про анимации и API 17. Если анимации отключить, то должно работать с API 4.
Yandex
Объявления
02.03.2016, 14:17     Запутался в фрагментах и транзакциях с GoogleMaps?
Ответ Создать тему
Опции темы

Текущее время: 12:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru