首页 > 解决方案 > Xamarin Android:按钮导航视图不起作用

问题描述

大家好,我的名字是谷口。

我想在我的回收站视图页面上实现一个导航视图。

我的按钮导航视图 XML:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/all_puppies"
    android:title="@string/action_all"
    android:icon="@drawable/ic_home_white_24dp" />

<item android:id="@+id/big_puppies"
    android:title="@string/action_big"
    android:icon="@drawable/ic_dog_white_24dp" />

<item android:id="@+id/small_puppies"
    android:title="@string/action_small"
    android:icon="@drawable/ic_small_dog_white_24dp" />

<item android:id="@+id/trained_puppies"
    android:title="@string/action_trained"
    android:icon="@drawable/ic_trained_white_24dp" />

<item android:id="@+id/active_puppies"
    android:title="@string/action_active"
    android:icon="@drawable/ic_active_white_24dp" />
</menu>

我的主要 axml

<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:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.BottomNavigationView
 android:id="@+id/bottom_navigation"
 android:layout_width="match_parent"
 android:layout_height="56dp"
 android:layout_gravity="start"
 android:layout_alignParentBottom="true"
 android:background="@android:color/white"
 app:menu="@menu/navigation_main" />
<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerViwer"
    android:scrollbars="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
</RelativeLayout>

我的按钮导航监听器:

public class MainActivity : Activity
{
    private RecyclerView mRecyclerView;
    private RecyclerView.LayoutManager mLayoutManager;
    private RecyclerView.Adapter mAdapter;
    private List<Email> mEmails;

    protected override void OnCreate(Bundle bundle)
    {   //set our view from the Main  layout Resource
        base.OnCreate(bundle);
        //Xamarin.Essentials.Platform.Init(this, bundle);

        SetContentView(Resource.Layout.activity_main);
        var bottomBar = FindViewById<BottomNavigationView>(Resource.Id.bottom_navigation);
        bottomBar.NavigationItemSelected += (s, a) => {
        };
        mRecyclerView = FindViewById<RecyclerView>(Resource.Id.recyclerViwer);
        mRecyclerView.AddItemDecoration(new DividerItemDecoration(mRecyclerView.Context, DividerItemDecoration.Vertical));
        mRecyclerView.HasFixedSize = true;
        SetupList();


        //Create our layout Manager
        mLayoutManager = new LinearLayoutManager(this);
        mRecyclerView.SetLayoutManager(mLayoutManager);
        RecyclerAdapter mAdapter = new RecyclerAdapter(mEmails, this);
        mRecyclerView.SetAdapter(mAdapter);
    }

但就行了:

SetContentView(Resource.Layout.activity_main);

给出相应的错误:Android.Views.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class android.support.design.widget.BottomNavigationView

标签: c#androidxamarin.android

解决方案


为了解决我的问题,我创建了一个新项目,并将最低 android 版本设置为:Oreo 8.1;和公共课 MainActivity :活动

我已更改为:

公共类 MainActivity : AppCompatActivity


推荐阅读