I have in my project Android Design Library and I'm working with navigation view but I have an issue with it. From API 15 till 20 everything is working fine as suppose to work but when I tried on API 21 (5.0) and higher it's not working even it's not showing the hamburger button. And I can't find where is the problem. Does anyone faced with similar problem? I'm working in xamarin with C#. This is the code:
using Android.App;
using Android.Widget;
using Android.OS;
using Android.Support.V4.Widget;
using Android.Support.V7.App;
using Android.Support.Design.Widget;
using System.Collections.Generic;
using System.Threading.Tasks;
using System;
using Android.Content;
using Android.Views;
using Android.Webkit;
namespace Cazin.Net
{
[Activity (Label = "Cazin.Net", Icon = "@mipmap/icon",Theme="@style/MyTheme")]
public class MainActivity : AppCompatActivity
{
static readonly string TAG = "X:" + typeof(MainActivity).Name;
List<FeedItem> feedList;
ProgressDialog progressDialog;
ProgressBar progressBar;
ListView feedListView;
LinearLayout linearHome;
LinearLayout linearSport;
LinearLayout linearMagazin;
DrawerLayout drawerLayout;
TextView textView;
TextView textViewTemp;
TextView textViewTemperature;
TextView textViewHumidty;
ImageView imageView;
ActionBarDrawerToggle drawerToggle;
public static string MTitle = "com.example.cazin_net.Title";
public static string mWriter = "com.example.cazin_net.Writer";
public static string mPubdate = "com.example.cazin_net.PubDate";
public static string Description = "com.example.cazin_net.Description";
public static string Image = "com.example.cazin_net.Image";
protected override void OnCreate (Bundle savedInstanceState)
{
base.OnCreate (savedInstanceState);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
feedListView = FindViewById<ListView> (Resource.Id.feedItemlistview);
linearHome = FindViewById<LinearLayout> (Resource.Id.linearLayoutHome);
linearSport = FindViewById<LinearLayout> (Resource.Id.linearSport);
linearMagazin = FindViewById<LinearLayout> (Resource.Id.linearMagazin);
textView = FindViewById<TextView> (Resource.Id.textWeather);
imageView = FindViewById<ImageView> (Resource.Id.imageweather);
textViewTemp = FindViewById<TextView> (Resource.Id.textWeatherTemp);
textViewTemperature = FindViewById<TextView> (Resource.Id.textWeatherTemperature);
textViewHumidty = FindViewById<TextView> (Resource.Id.textWeatherHumidity);
this.progressDialog = new ProgressDialog (this);
this.progressBar = FindViewById<ProgressBar> (Resource.Id.myProgrsesbar);
progressDialog.SetMessage ("Dobavljam vijesti...");
GetItemList ();
linearHome.Pressed = true;
//setting up drawer layout
drawerLayout = FindViewById<DrawerLayout> (Resource.Id.drawer_layout);
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar> (Resource.Id.toolbar);
SetSupportActionBar (toolbar);
SupportActionBar.SetDisplayHomeAsUpEnabled (true);
SupportActionBar.SetDisplayShowHomeEnabled(true);
drawerToggle = new ActionBarDrawerToggle (this, drawerLayout, toolbar,
Resource.String.open_drawer, Resource.String.close_drawer);
drawerLayout.SetDrawerListener (drawerToggle);
drawerToggle.SyncState ();
linearHome.Click += (object sender, EventArgs e) =>
{
var intent = new Intent(this, typeof(MainActivity));
Finish();
StartActivity(intent);
};
linearSport.Click += (object sender, EventArgs e) =>
{
var intent = new Intent(this, typeof(SportActivity));
StartActivity(intent);
};
linearMagazin.Click += (object sender, EventArgs e) =>
{
var intent = new Intent(this, typeof(MagazinActivity));
StartActivity(intent);
linearMagazin.Pressed = true;
};
var navView = FindViewById<NavigationView> (Resource.Id.nav_view);
navView.NavigationItemSelected += (object sender, NavigationView.NavigationItemSelectedEventArgs e) =>
{
switch (e.MenuItem.ItemId) {
case(Resource.Id.nav_cazin):
var intent = new Intent(this, typeof(CazinActivity));
StartActivity(intent);
break;
case(Resource.Id.nav_vijesti):
var vijesti = new Intent(this, typeof(VijestiActivity));
StartActivity(vijesti);
break;
case(Resource.Id.nav_izdvojeno):
var intentIzdvojeno = new Intent(this, typeof(IzdvojenoActivity));
StartActivity(intentIzdvojeno);
break;
case(Resource.Id.nav_oglasi):
var oglasi = new Intent(this, typeof(Oglasi));
StartActivity(oglasi);
break;
case(Resource.Id.nav_diskusije):
break;
case(Resource.Id.nav_video):
break;
case(Resource.Id.nav_radio):
break;
default:
break;
}
drawerLayout.CloseDrawer(navView);
};
var navViewRight = FindViewById<NavigationView> (Resource.Id.nav_viewright);
navViewRight.NavigationItemSelected += (object sender, NavigationView.NavigationItemSelectedEventArgs e) =>
{
switch (e.MenuItem.ItemId)
{
case(Resource.Id.nav_facebook):
var facebook = new Intent(this, typeof(FacebookActivity));
StartActivity(facebook);
break;
case(Resource.Id.nav_twitter):
var twitter = new Intent(this, typeof(TwitterActivity));
StartActivity(twitter);
break;
case(Resource.Id.nav_googleplus):
var googlePlus = new Intent(this, typeof(GooglePlus));
StartActivity(googlePlus);
break;
default:
break;
}
};
}
private void GetItemList()
{
this.progressDialog.Show ();
Task<List<FeedItem>> task = Task.Factory.StartNew (() => {
return FeedService.GetFeedItems ("http://www.cazin.net/vijesti/rss84234532133");
});
Task task2 = task.ContinueWith ((s) => {
try {
this.progressDialog.Dismiss ();
this.feedList = s.Result;
this.PopulateListView (this.feedList);
} catch (AggregateException ex) {
Toast.MakeText (this, ex.InnerException.Message, ToastLength.Short).Show ();
}
}, TaskScheduler.FromCurrentSynchronizationContext ());
}
void PopulateListView(List<FeedItem> list)
{
this.RunOnUiThread (() =>
{
var adapter = new FeedItemListAdapter(this, list);
feedListView.Adapter = adapter;
feedListView.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) =>
{
var feedItem = adapter[e.Position];
FeedItem itemFeed = new FeedItem()
{
Title = feedItem.Title,
PubDate = feedItem.PubDate,
Description = feedItem.Description,
Writer = feedItem.Writer,
Image = feedItem.Image
};
var newsDetail = new Intent(Application.Context, typeof(FeedDetails));
newsDetail.PutExtra(MTitle, itemFeed.Title);
newsDetail.PutExtra(mWriter, itemFeed.Writer);
newsDetail.PutExtra(mPubdate, itemFeed.PubDate.ToString());
newsDetail.PutExtra(Description, itemFeed.Description);
newsDetail.PutExtra(Image, itemFeed.Image);
StartActivity(newsDetail);
};
});
}
void GetWeather()
{
progressBar.Visibility = ViewStates.Visible;
this.RunOnUiThread (async () => {
RootObject myweather = await OpenWeatherMap.GetWeather(15.94, 44.97);
textView.Text = "Lokacija: " + myweather.name.ToUpper();
textViewTemperature.Text = "Temperatura: " + (int)myweather.main.temp + "°C";
textViewTemp.Text = "Opis: " + myweather.weather[0].description;
textViewHumidty.Text = "Vlažnost: " + myweather.main.humidity.ToString() + "%";
if(myweather.weather[0].description == "clear sky")
imageView.SetImageResource(Resource.Drawable.ic_sunny);
else if(myweather.weather[0].description == "few clouds")
imageView.SetImageResource(Resource.Drawable.ic_few_cluds);
else if(myweather.weather[0].description == "overcast clouds" )
imageView.SetImageResource(Resource.Drawable.ic_scattered_clouds);
else if(myweather.weather[0].description == "scattered clouds" )
imageView.SetImageResource(Resource.Drawable.ic_scattered_clouds);
else if(myweather.weather[0].description == "broken clouds")
imageView.SetImageResource(Resource.Drawable.ic_scattered_clouds);
else if(myweather.weather[0].description == "shower rain")
imageView.SetImageResource(Resource.Drawable.ic_shower_rain);
else if(myweather.weather[0].description == "light rain")
imageView.SetImageResource(Resource.Drawable.ic_shower_rain);
else if(myweather.weather[0].description == "rain")
imageView.SetImageResource(Resource.Drawable.ic_rain);
else if(myweather.weather[0].description == "moderate rain")
imageView.SetImageResource(Resource.Drawable.ic_shower_rain);
else if(myweather.weather[0].description == "thunderstorm")
imageView.SetImageResource(Resource.Drawable.ic_rain);
else if(myweather.weather[0].description == "snow")
imageView.SetImageResource(Resource.Drawable.ic_snow);
else if(myweather.weather[0].description == "mist")
imageView.SetImageResource(Resource.Drawable.ic_mist);
progressBar.Visibility = ViewStates.Gone;
});
}
public override bool OnCreateOptionsMenu (Android.Views.IMenu menu)
{
MenuInflater.Inflate (Resource.Menu.menu, menu);
return base.OnCreateOptionsMenu (menu);
}
public override bool OnOptionsItemSelected (IMenuItem item)
{
var navViewRight = FindViewById<NavigationView> (Resource.Id.nav_viewright);
switch (item.ItemId)
{
case Resource.Id.action_help:
drawerLayout.OpenDrawer (navViewRight);
GetWeather ();
return true;
default:
break;
}
return base.OnOptionsItemSelected(item);
}
}
}
And AXML code:
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawer_layout">
<ListView
android:id="@+id/feedItemlistview"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:paddingTop="80dp"
android:dividerHeight="10dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" />
<LinearLayout
android:orientation="horizontal"
android:id="@+id/mainLayout"
android:layout_alignParentBottom="true"
android:background="?attr/colorPrimary"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:weightSum="100">
<LinearLayout
android:orientation="vertical"
android:layout_weight="25"
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/linearLayoutHome"
android:padding="0dp"
android:weightSum="100"
android:background="@drawable/Selector"
android:clickable="true"
android:focusable="false"
android:focusableInTouchMode="false">
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/imageView1"
android:src="@drawable/ic_home_black_24dp"
android:layout_weight="50"
android:scaleType="fitCenter"
android:adjustViewBounds="false" />
<TextView
android:text="Početna"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="40"
android:textStyle="bold"
android:id="@+id/textView1"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_weight="25"
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/linearMagazin"
android:weightSum="100"
android:padding="0dp"
android:background="@drawable/Selector"
android:clickable="true"
android:focusable="false"
android:focusableInTouchMode="false">
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/imageView2"
android:layout_weight="50"
android:src="@drawable/ic_whatshot_black_24dp"
android:scaleType="fitCenter"
android:adjustViewBounds="false" />
<TextView
android:text="Magazin"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="40"
android:textStyle="bold"
android:id="@+id/textView2"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_weight="25"
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/linearSport"
android:weightSum="100"
android:padding="0dp"
android:background="@drawable/Selector"
android:clickable="true"
android:focusable="false"
android:focusableInTouchMode="false">
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="50"
android:id="@+id/imageView3"
android:src="@drawable/ic_directions_bike_black_24dp"
android:scaleType="fitCenter"
android:adjustViewBounds="false" />
<TextView
android:text="Sport"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="40"
android:textStyle="bold"
android:id="@+id/textView3"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_weight="25"
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/linearLayout4"
android:weightSum="100"
android:padding="0dp"
android:clickable="true"
android:background="@drawable/Selector"
android:focusable="false"
android:focusableInTouchMode="false">
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/imageView4"
android:layout_weight="50"
android:src="@drawable/ic_photo_library_black_24dp"
android:scaleType="fitCenter"
android:adjustViewBounds="false" />
<TextView
android:text="Galerija"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="40"
android:textStyle="bold"
android:id="@+id/textView4"
android:gravity="center_horizontal" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:id="@+id/nav_view"
app:theme="@style/NavigationDrawerStyle"
app:menu="@menu/navigationmenu"
android:background="@android:color/white"
app:headerLayout="@layout/header" />
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:weightSum="100"
android:layout_gravity="right"
android:background="@android:color/white"
android:id="@+id/nav_viewright"
app:theme="@style/NavigationDrawerStyle"
app:menu="@menu/navigationmenuright">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="60"
android:weightSum="100"
android:orientation="vertical"
android:background="@android:color/holo_blue_bright">
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/myProgrsesbar"
android:progressDrawable="@drawable/circular_progress"
android:layout_gravity="center" />
<ImageView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:scaleType="fitCenter"
android:weightSum="60"
android:id="@+id/imageweather" />
<TextView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:gravity="center"
android:text="Weather"
android:weightSum="40"
android:textStyle="bold"
android:fontFamily="sans-serif"
android:textColor="@android:color/white"
android:textSize="18dp"
android:id="@+id/textWeather"
android:layout_marginTop="30dp" />
<TextView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:gravity="center"
android:text="Weather"
android:weightSum="40"
android:textStyle="bold"
android:fontFamily="sans-serif"
android:textColor="@android:color/white"
android:textSize="18dp"
android:id="@+id/textWeatherTemperature"
android:layout_marginTop="4dp" />
<TextView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:text="Weather"
android:gravity="center"
android:weightSum="40"
android:textStyle="bold"
android:fontFamily="sans-serif"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="18dp"
android:id="@+id/textWeatherTemp"
android:layout_marginTop="4dp" />
<TextView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:gravity="center"
android:text="Weather"
android:textStyle="bold"
android:weightSum="40"
android:fontFamily="sans-serif"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="18dp"
android:id="@+id/textWeatherHumidity"
android:layout_marginTop="4dp" />
</LinearLayout>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
If someone face in future with similar problem this was solution for my problem. As I guessed problem wasn't in code. I added design library via components but that is not the latest version and you will face with errors in android lollipop or higher so add it via NuGet Packages or make an update and you will get the latest version.