Laden...

Xamarin.Android NavigationView Seite wechseln/Layout ändern

Erstellt von schorge vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.013 Views
S
schorge Themenstarter:in
129 Beiträge seit 2014
vor 5 Jahren
Xamarin.Android NavigationView Seite wechseln/Layout ändern

Ich kämpfe mich grade durch tausende Beispiele und die Xamarin Doku
und will nur was Grundlegendes erreichen, das sich die content_main.axml durch ein anderes
Layout ersetze.
Ich habe in VS das vorgefertigte NavigationsDrawnerObjekt verwendet,

Die content_main.axml ist in der app_bar_main.axml includet.

Intent und ActivitiyContentDetail werden dann leider wer App-Bar noch
Nav angezeigt.

Wie kann ich die Navigation beibehalten und je "Seite" trotzdem
ein eigenes Layout mit eigner Activitiy.cs erstellen?

MainActivity.cs


 protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            Android.Support.V7.Widget.Toolbar toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);

            

            FloatingActionButton fab = FindViewById<FloatingActionButton>(Resource.Id.fab);
            fab.Click += FabOnClick;

            DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);

            ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_close);
            drawer.AddDrawerListener(toggle);
            toggle.SyncState();

            NavigationView navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
            navigationView.SetNavigationItemSelectedListener(this);
            

            
            layoutContentDetail = FindViewById<RelativeLayout>(Resource.Id.layoutContentDetail);
			
			}

 public bool OnNavigationItemSelected(IMenuItem item)
        {
            int id = item.ItemId;

            if (id == Resource.Id.nav_camera)
            {
                Intent setlayoutContentDetail = new Intent(this, typeof(ActivitiyContentDetail));
				StartActivity(setlayoutContentDetail);
				
                // Beim Intent wird das Complette Layout gewechselt,
		// es soll nur das content_main.axml durch ein andere layout ersetzt werden
                // und das navigationsmenü erhalten bleiben
                
            }
            else if (id == Resource.Id.nav_gallery)
            {
                
            }
            else if (id == Resource.Id.nav_slideshow)
            {
                
            }
            else if (id == Resource.Id.nav_manage)
            {

            }
            else if (id == Resource.Id.nav_share)
            {

            }
            else if (id == Resource.Id.nav_send)
            {

            }

            DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
            drawer.CloseDrawer(GravityCompat.Start);
            return true;
        }


ActivitiyContentDetail.cs


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;

namespace Simsons
{
    [Activity(Label = "ActivityBestellung")]
    public class ActivityBestellung : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.layoutContentDetail);
        }
    }
}

_app_bar_main.axml _


<?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.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_main" />
    <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"
        app:srcCompat="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>

_content_main.axml _


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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/layoutMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/app_bar_main"
    android:minWidth="25px"
    android:minHeight="25px">   
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/hauptFrame"
        android:minWidth="25px"
        android:minHeight="25px">
        <TextView
            android:text="Seite HAUPTFRAME"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/textView1" />
    </FrameLayout>
</RelativeLayout>