为什么我不能在选项卡式页面中添加ImageView?

时间:2019-04-15 15:30:32

标签: java c# android visual-studio xamarin

所以我最近才刚开始通过Xamarin开发Android应用程序,而我正在苦苦挣扎。 我创建了这样的应用程序(在Visual Studio 2017社区版中):
新项目-> Visual C#-> Android-> Android应用(Xamarin)->选项卡式应用(Android 5.0)。

然后我将 ImageView 拖到屏幕上的任何地方。我尝试运行它,但崩溃了,但例外:

Unhandled Exception:

Android.Views.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class android.support.design.widget.BottomNavigationView

我尝试过的事情:
1)在新的Visual Studio版本-2019中进行此操作。
2)将其放在空白应用中-确实可以工作,但是我需要我的应用具有选项卡式页面功能,所以这不是一个选择。

任何技巧都值得赞赏。以下是可视化的图像。
Code line where it crashes
This is how it looks from the designer perspective.
Error from designer window

MainActivity.cs:

using Android.App;
using Android.OS;
using Android.Runtime;
using Android.Support.Design.Widget;
using Android.Support.V7.App;
using Android.Views;
using Android.Widget;

namespace App10
{
    [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
    public class MainActivity : AppCompatActivity, BottomNavigationView.IOnNavigationItemSelectedListener
    {
        TextView textMessage;

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // Error on this line.
            SetContentView(Resource.Layout.activity_main);

            textMessage = FindViewById<TextView>(Resource.Id.message);
            BottomNavigationView navigation = FindViewById<BottomNavigationView>(Resource.Id.navigation);
            navigation.SetOnNavigationItemSelectedListener(this);
        }
        public bool OnNavigationItemSelected(IMenuItem item)
        {
            switch (item.ItemId)
            {
                case Resource.Id.navigation_home:
                    textMessage.SetText(Resource.String.title_home);
                    return true;
                case Resource.Id.navigation_dashboard:
                    textMessage.SetText(Resource.String.title_dashboard);
                    return true;
                case Resource.Id.navigation_notifications:
                    textMessage.SetText(Resource.String.title_notifications);
                    return true;
            }
            return false;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

  

然后我将ImageView拖到屏幕上的任何地方。我尝试运行它,但由于以下情况而崩溃:

经过测试,我发现这不是您的问题,这应该是VS的错误。

解决方案:

修改 axml 文件后,您需要清理项目,然后重新构建。该错误不会发生。

Clean Solution -> Build Solution可以解决。