23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684

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

27.02.2016, 17:59. Показов 1191. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.02.2016, 17:59
Ответы с готовыми решениями:

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

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

ошибки в фрагментах
Добрый день, помогите найти ошибки в следующих фрагментах программ: а) IF 1&lt;X&lt;2 THEN X := X+1; Y:= 0; ELSE X :=0;...

13
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
29.02.2016, 10:10  [ТС]
?
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
29.02.2016, 10:25
Цитата Сообщение от disx Посмотреть сообщение
<fragment
По-моему, это для статических фрагментов. Для динамических используйте FrameLayout или другие контейнеры.
0
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
29.02.2016, 11:54  [ТС]
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
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
29.02.2016, 12:03
XML
1
android:name="com.google.android.gms.maps.SupportMapFragment"
не поможет?
ну и в коде где этот фрагмент находится, писать
Java
1
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.gmap);
1
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
29.02.2016, 12:08
Цитата Сообщение от disx Посмотреть сообщение
NullPointerException at com.dis.pro.MapGoogle.onCreateView(MapGo ogle.java:37)
Что здесь? Уж могли бы поглядеть.
0
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
29.02.2016, 12:46  [ТС]
Паблито, попробую

CoolMind, дак гледел
Java
1
mapFragment.getMapAsync(this);
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
29.02.2016, 13:13
Цитата Сообщение от disx Посмотреть сообщение
дак гледел
дак чего же не написел?
Очевидно, mapFragment = null, т.е. вы его неправильно создаёте.
0
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
29.02.2016, 20:03  [ТС]
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
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
01.03.2016, 10:55
disx, наверное, тема фрагментов вам ещё не очень знакома. Поэтому, думаю, оставьте, как есть из документации. Т.е. можно вернуть <fragment>.
FragmentActivity обязателен для использования с фрагментами, но у него есть множество наследников. Например, AppCompatActivity или ActionBarActivity. В этом случае используйте наследника.
Также можно использовать Support-библиотеки (для совместимости со старыми версиями Андроида). В этом случае в большинстве методов будет указано слово Support. Т.е. вам нужно определить у себя, какие библиотеки импортируете, не должно быть конфликтов (фрагменты - одной версии с FragmentManager и т.д.).
Честно говоря, долго разбираться, вам надо обязательно это сделать самостоятельно, я тоже много шишек набивал.
1
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
01.03.2016, 13:25  [ТС]
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
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
01.03.2016, 14:32
disx, я тоже когда-то парился таким вопросом. Это не то решение. Это для Maps v1. Вам нужны Maps v2, современные. И API_KEY для них будете получать.
1
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
02.03.2016, 12:35  [ТС]
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
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
02.03.2016, 14:17
disx, ну вот, совсем другое дело!
Не совсем понял про анимации и API 17. Если анимации отключить, то должно работать с API 4.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.03.2016, 14:17
Помогаю со студенческими работами здесь

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

Массивы. найти ошибки во фрагментах программы
Задание: Объясните и исправьте ошибки в каждом фрагменте программы: 1) var a: array of integer; 2) a(3):=6; 3) var c: array of...

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

Можно ли рисовать лупу не во всех фрагментах?
Недавно подключил ActionBar с поиском, использовал такой тьюториал: http://www.androidhive.info/2013/11/android-working-with-action-bar/....

Объяснить, что происходит в заданных фрагментах кода
Здравствуйте, товарисчи! Очень хотелось бы объяснения хода работы данных программ + того, что они выведут в результате. Чем подробнее,...


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

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

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru