我正在尝试实现James Montemagno的导航抽屉(https://github.com/jamesmontemagno/Xamarin-Templates),我遇到了问题.当我创建一个新项目时,我没有遇到任何问题,但当我尝试将支持库添加到现有项目时,我收到以下错误:
命名空间"my namespace"中不存在类型或命名空间名称"Support"(您是否缺少程序集引用)?
这是我的代码(问题代码是最后一行.我没有超过这个,因为我想了解发生了什么):
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;
using Android.Support.V7.App;
using Android.Support.V4.Widget;
using Android.Support.V4.View;
using MyApp.Parse;
using MyApp.Android.Core.Login;
using MyApp.Android.Core.Utils;
namespace MyApp.Android.Core.Main
{
[Activity(Label = "MainActivity", Icon = "@drawable/Icon")]
public class MainActivity : BaseActivity
{
private MyActionBarDrawerToggle mDrawerToggle;
private string mDrawerTitle;
private string mTitle;
private DrawerLayout mDrawerLayout;
private ListView mDrawerListView;
private DrawerMenuAdapter mAdapter;
protected override int LayoutResource
{
get
{
return Resource.Layout.Main;
}
}
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// setup drawer
mTitle = mDrawerTitle = Title;
mDrawerLayout = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
mDrawerListView = FindViewById<ListView>(Resource.Id.left_drawer);
// create adapter for drawer
mDrawerListView.Adapter = mAdapter = new DrawerMenuAdapter(this);
// set click handler
mDrawerListView.ItemClick += (sender, args) => ListItemClicked(args.Position);
// set DrawerShadow
mDrawerLayout.SetDrawerShadow(Resource.Drawable.drawer_shadow_dark, (int)GravityCompat.Start);
// set DrawerToggle - the animation that happens with the indicator next to the actionbar
mDrawerToggle = new MyActionBarDrawerToggle(this, mDrawerLayout, Toolbar,
Resource.String.drawer_open,
Resource.String.drawer_close);
// display current fragment's title and update the options menu
mDrawerToggle.DrawerClosed += (o, args) =>
{
this.SupportActionBar.Title = mTitle;
this.SupportInvalidateOptionsMenu();
};
// display the drawer title and update the options menu
mDrawerToggle.DrawerOpened += (o, args) =>
{
this.SupportActionBar.Title = mDrawerTitle;
this.SupportInvalidateOptionsMenu();
};
// set the drawer listener
mDrawerLayout.SetDrawerListener(mDrawerToggle);
// if first time, click first item
if (savedInstanceState == null)
ListItemClicked(0);
//
Button logout = FindViewById<Button>(Resource.Id.logoutButton);
logout.Click += (object sender, EventArgs e) =>
{
Toast.MakeText(this, APIHandler.Logout(), ToastLength.Long).Show();
StartActivity(typeof(DispatchActivity));
};
}
int oldPosition = -1;
private void ListItemClicked(int position)
{
// this way we don't load twice
if (position == oldPosition)
return;
oldPosition = position;
Android.Support.V4.App.Fragment fragment = null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Visual Studio,我尝试在我的项目中使用Reference和Components导入Xamarin.Android.Support.v4和Xamarin.Android.Support.v7.AppCompat.当我在课程开始时"使用"时,我可以找到Android.Support,但是一旦我在课程的声明中,我找不到Android.Support.
有谁知道如何解决这一问题?我是C#,Xamarin和Visual Studio的新手,所以我有点不知所措.
我知道我可以通过启动一个新项目并复制我的大部分旧代码来解决这个问题,但我想知道为什么我会收到此错误.
看起来实际上存在与MyApp.Android和Android.Support.etc的命名空间冲突 - 要解决片段问题,请使用以下内容:
using Fragment = Android.Support.V4.App.Fragment;
Run Code Online (Sandbox Code Playgroud)
这应该正确解析命名空间(或者你可以从Myapp.Android更改命名空间,如果它变得太麻烦).
归档时间: |
|
查看次数: |
6119 次 |
最近记录: |