Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 601
Записей в блоге: 1
1

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

27.02.2016, 17:59. Просмотров 538. Ответов 13
Метки нет (Все метки)

есть активити, в которой по кнопке меняются фрагменты (их пока всего два), один из этих фрагментов карта Гугл, когда по кнопке меняю на второй все ок но если опять первый щелкнуть то вылетает проблем и ругается на 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);
что не так может быть, подскажите пожалуйста?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2016, 17:59
Ответы с готовыми решениями:

View во фрагментах
Чтобы прикрепить вид к layout в onCreateView мы раздуваем вид таким образом: View view =...

NavigationView на фрагментах
Всем привет! Нужен совет. Задача банальная. Приложение с NavigationView + Toolbar, доступ к...

Спрятать SearchView в некоторых фрагментах
Всем привет, такой вопрос: Есть NavigationDrawer В одном фрагменте реализован viewPager , там 2...

Можно ли рисовать лупу не во всех фрагментах?
Недавно подключил ActionBar с поиском, использовал такой тьюториал:...

Что использовать во фрагментах вместо getIntent() ?
Всем привет! Пытаюсь из одной активности во фрагмент передать данные. Метод...

13
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 601
Записей в блоге: 1
29.02.2016, 10:10  [ТС] 2
?
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,735
29.02.2016, 10:25 3
Цитата Сообщение от disx Посмотреть сообщение
<fragment
По-моему, это для статических фрагментов. Для динамических используйте FrameLayout или другие контейнеры.
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 601
Записей в блоге: 1
29.02.2016, 11:54  [ТС] 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>
загрузилось норм а дальше как в первом посте...
0
29.02.2016, 11:54
Pablito
2860 / 2273 / 767
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 1
29.02.2016, 12:03 5
XML
1
android:name="com.google.android.gms.maps.SupportMapFragment"
не поможет?
ну и в коде где этот фрагмент находится, писать
Java
1
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.gmap);
1
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,735
29.02.2016, 12:08 6
Цитата Сообщение от disx Посмотреть сообщение
NullPointerException at com.dis.pro.MapGoogle.onCreateView(MapGoogle.java:37)
Что здесь? Уж могли бы поглядеть.
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 601
Записей в блоге: 1
29.02.2016, 12:46  [ТС] 7
Паблито, попробую

CoolMind, дак гледел
Java
1
mapFragment.getMapAsync(this);
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,735
29.02.2016, 13:13 8
Цитата Сообщение от disx Посмотреть сообщение
дак гледел
дак чего же не написел?
Очевидно, mapFragment = null, т.е. вы его неправильно создаёте.
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 601
Записей в блоге: 1
29.02.2016, 20:03  [ТС] 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'е основной активности?
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,735
01.03.2016, 10:55 10
disx, наверное, тема фрагментов вам ещё не очень знакома. Поэтому, думаю, оставьте, как есть из документации. Т.е. можно вернуть <fragment>.
FragmentActivity обязателен для использования с фрагментами, но у него есть множество наследников. Например, AppCompatActivity или ActionBarActivity. В этом случае используйте наследника.
Также можно использовать Support-библиотеки (для совместимости со старыми версиями Андроида). В этом случае в большинстве методов будет указано слово Support. Т.е. вам нужно определить у себя, какие библиотеки импортируете, не должно быть конфликтов (фрагменты - одной версии с FragmentManager и т.д.).
Честно говоря, долго разбираться, вам надо обязательно это сделать самостоятельно, я тоже много шишек набивал.
1
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 601
Записей в блоге: 1
01.03.2016, 13:25  [ТС] 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.
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,735
01.03.2016, 14:32 12
disx, я тоже когда-то парился таким вопросом. Это не то решение. Это для Maps v1. Вам нужны Maps v2, современные. И API_KEY для них будете получать.
1
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 601
Записей в блоге: 1
02.03.2016, 12:35  [ТС] 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 в моем случае работает (анимации в транзакциях мешают), но учитывая статистику версий не парюсь особо.
1
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,735
02.03.2016, 14:17 14
disx, ну вот, совсем другое дело!
Не совсем понял про анимации и API 17. Если анимации отключить, то должно работать с API 4.
0
02.03.2016, 14:17
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2016, 14:17

Автокомплит + GoogleMaps
У меня есть отдельно приложения, которые: первое приложение - осуществляет автокомплит...

Googlemaps + onBackPressed
в общем откуда то взялась проблема... Имеется фрагмент №1 с картой с него переход на №2 с...

GoogleMaps и эмулятор
Здравствуйте. Есть небольшая проблема с эмулятором и картами. Суть того, что я хочу сделать:...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru