【问题标题】:How to add Spinner on NavigationView如何在 NavigationView 上添加 Spinner
【发布时间】:2016-01-18 04:44:42
【问题描述】:

如何在 NavigationView 列表中添加 Spinner?有可能吗?

【问题讨论】:

    标签: android menuitem navigationview


    【解决方案1】:

    是的,现在可以使用 android 支持版本 23.1+,请参阅此官方 blogpost

    1.首先创建一个带有微调项的xml布局spinner_menu.xml

    <Spinner xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical"
        android:layout_height="match_parent">
    </Spinner>
    

    2.比像这样链接到导航视图菜单xml

    <item android:id="@+id/nav_lang"
         android:icon="@android:drawable/ic_menu_manage"
         android:title="Language"
         app:actionLayout="@layout/spinner_menu"/>
    

    3.如果你想在你的活动中访问它,比如在选择微调项时添加操作,

    Spinner sp = (Spinner) navigationView.getMenu().findItem(R.id. nav_lang).getActionView();
        sp.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,langs));
        sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this,langs[position],Toast.LENGTH_SHORT).show();
            }
    
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
    

    其中 langs 是一个字符串数组或数组列表,用于在微调器中显示项目。

    如下所示,

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

      当然可以。 NavigationView 最终从 FrameLayout 扩展,因此您的布局可以设置如下:

      <android.support.v4.widget.DrawerLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
      
      <!-- Content View - include your main layout here -->
      <include layout="@layout/activity_main" />
      
      <!-- Drawer view -->
      <android.support.design.widget.NavigationView
          android:layout_width="wrap_content"
          android:layout_height="match_parent"
          android:layout_gravity="start">
      
          <LinearLayout
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">
      
              <!-- TODO Add Spinner views here -->
      
          </LinearLayout>
      
      </android.support.design.widget.NavigationView>
      

      【讨论】:

        猜你喜欢
        • 2015-10-16
        • 2015-11-01
        • 1970-01-01
        • 2015-09-27
        • 1970-01-01
        • 2022-01-22
        • 2016-03-16
        • 2014-09-09
        • 1970-01-01
        相关资源
        最近更新 更多