2016-04-28 3 views
0

У меня есть активация запуска с ящиком навигатора. Когда я добавляю карту в эту операцию запуска, я не вижу никакой панели инструментов, поэтому я не могу управлять навигационным ящиком. Вот как моя деятельность выглядит сейчас: enter image description hereПанель навигации ящика Android Android отсутствует

А вот как это должно выглядеть так (мне нужно, чтобы эта панель инструментов) enter image description here

И навигационный ящик должен перекрывать карту, как этот enter image description here

Так вот мой код

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_map_nav); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 

    mapView = new MapView(this); 

    MapHandler.getMapHandler().init(this, mapView); 

    addMarkers(); 
} 

, как вы можете видеть, что я добавить панель инструментов в деятельности

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

здесь часть MapHandler метода Init()

mapView.getLayerManager().getLayers().add(tileRendererLayer); 
    ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 
      ViewGroup.LayoutParams.WRAP_CONTENT); 
    activity.addContentView(mapView, params); 

здесь код из файла манифеста

<activity 
     android:name=".map.MapNavActivity" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

Так что я делаю неправильно?

EDIT мой нав активность XML

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

    <include 
     layout="@layout/app_bar_map_nav" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header_map_nav" 
     app:menu="@menu/activity_map_nav_drawer" /> 

</android.support.v4.widget.DrawerLayout> 

app_bar_map_nav.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="aplikacija.zveju.rinkodara.com.zvejuaplikacija.map.MapNavActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_map_nav" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_dialog_email" /> 

</android.support.design.widget.CoordinatorLayout> 
+0

Пожалуйста , добавьте свой макет xml активности. – Majestic

+0

@Majestic Я добавляю xml-файл – David

+0

Это только догадываться, но возможно вы используете CoordinatorLayout с картами? Если это так, AppBar будет отображаться только с поведением, связанным с ним – Nexen

ответ

0

Я решил эту проблему с помощью Majestic. Спасибо! Добавить этот код в content_map_nav.xml

<org.mapsforge.map.android.view.MapView 
    android:id="@+id/mapView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
</org.mapsforge.map.android.view.MapView> 

и mainactivity вместо этого mapView = new MapView() я пишу эту mapView = (MapView) findViewById(R.id.mapView); и теперь он работает!

0

Может быть, вы должны заменить ConstraintLayout в content_main.xml с RelativeLayout или LinearLayout, если вы хотите использовать LinearLayout или RelativeLayout вы должны сохранить, но обернуть макет так:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:context="com.gmail.farhadkargaran.myapplication.MainActivity" 
tools:showIn="@layout/app_bar_main"> 

<LinearLayout 

    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/main_bg" 
    android:orientation="vertical" 
    android:gravity="center" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toTopOf="parent" 
    tools:showIn="@layout/app_bar_main"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Hello World!" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 
</LinearLayout>