2016-06-15 13 views
0

私のプロジェクトにはAndroidデザインライブラリがあり、ナビゲーションビューで作業していますが、問題があります。 API 15から20まではすべて正常に機能していますが、API 21(5.0)以降ではハンバーガーボタンが表示されていなくても機能しません。そして私はどこに問題があるのか​​分からない。誰も似たような問題に直面していますか?私はC#でxamarinで作業しています。これはコードです:ナビゲーションドロワーがAndroidロリポップで動作しない

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); 
     } 

    } 
} 

そしてAXMLコード:

<?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> 
+0

あなたのプロジェクトにはappcompact-v7がありますか? –

+0

何が起こるか把握できるように、いくつかのコード、特にaxmlを入力してください。 – ad1Dima

+0

はい!私はツールバー、引き出しレイアウト、ナビゲーションビューを設定しているところでコードの一部を投稿しようとします。 – Yupi

答えて

1

誰かが同様の問題と将来に直面した場合、これは私の問題の解決策でした。私が推測したように、問題はコードではありませんでした。私はコンポーネントを介してデザインライブラリを追加しましたが、それは最新バージョンではありません。あなたはAndroidロリポップ以上のエラーに直面しますので、NuGetパッケージ経由で追加するか、アップデートして最新バージョンを入手します。

関連する問題