Android:在DrawerMenu中展开子菜单

时间:2016-11-14 17:14:22

标签: android material-design submenu drawerlayout drawer

我想在我的Android应用程序中使用选项实现Drawermenu:

  1. 个人资料
  2. 设置
  3. 信息
  4. 对于Drawermenu的实现,有很多教程,一切都非常清楚,但是我在Reddit应用程序中添加类似于这个的子菜单时找不到任何东西:

    With click on "My Subscriptions" the List of my Subscriptions expands

    点击"我的订阅"我的订阅列表扩展。

    这真的难以实现吗? 赞赏任何想法或建议

    我的抽屉设置如下:

    布局XML:

    <android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <!-- The main content view -->
        <FrameLayout
            android:id="@+id/content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
        <!-- The navigation drawer -->
        <ListView
            android:id="@+id/left_drawer"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="left|start"
            android:background="#ffeeeeee"/>
    </android.support.v4.widget.DrawerLayout>
    

    MainActivity:

    package com.example.simon.drawtest;
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    public class MainActivity extends Activity {
        private ListView mDrawerList;
        private ArrayAdapter<String> mAdapter;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mDrawerList = (ListView) findViewById(R.id.left_drawer);
            addDrawerItems();
        }
        private void addDrawerItems() {
            String[] osArray = {"Profile", "Settings", "Info"};
            mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, osArray);
            mDrawerList.setAdapter(mAdapter);
        }
    }
    

    谢谢你们!

1 个答案:

答案 0 :(得分:2)

您需要使用ExpandableListView替换ListView。这是一个很好的tutorial开始。