简体   繁体   English

导航抽屉及其他组件

[英]Navigation drawer with other component

How can use navigation drawer with an other component? 导航抽屉如何与其他组件一起使用?

My activity_main is 我的activity_main是

<LinearLayout
android:id="@+id/ListView"
android:layout_width="match_parent"
android:layout_height="262dp"
android:orientation="vertical" >  

<Button
    android:id="@+id/button0"
    android:layout_width="match_parent"
    android:layout_height="85dp"
    android:background="@drawable/..."
    />
...
</LinearLayout>

With this xml file I want to add navigation drawer in my App. 有了这个xml文件,我想在我的App中添加导航抽屉。

activity_main.xml : activity_main.xml

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- The main content view -->
    <LinearLayout
        android:id="@+id/ListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >  

        <!-- your buttons and whatever else is in your main layout -->

    </LinearLayout>

    <!-- The navigation drawer -->
    <ListView android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#111"/>

</android.support.v4.widget.DrawerLayout>

To initialize the drawer, in MainActivity.java : 要初始化抽屉,请在MainActivity.java

public class MainActivity extends Activity 
{
    private ActionBarDrawerToggle mDrawerToggle;
    private DrawerLayout mDrawerLayout;
    private ListView mDrawerList;
    ...

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

        mDrawerToggle = new ActionBarDrawerToggle(
            this,
            mDrawerLayout,
            R.string.drawer_open,
            R.string.drawer_close)
       {
            public void onDrawerClosed(View view)
            {
                super.onDrawerClosed(view);
                invalidateOptionsMenu();
            }

            public void onDrawerOpened(View drawerView)
            {
                super.onDrawerOpened(drawerView);
                invalidateOptionsMenu();
            }
        };

        mDrawerLayout.setDrawerListener(mDrawerToggle);

        mDrawerList = (ListView) findViewById(R.id.left_drawer);
        mDrawerList.setAdapter(yourAdapter);
        mDrawerList.setOnItemClickListener(new ListView.OnItemClickListener()
        {
            @Override
            public void onItemClick(AdapterView parent, View view, int position, long id)
            {
                // Deal with the selection
                selectItem(position);
            }
        });
    }
}

To handle click events for your navigation drawer, see here . 要处理导航抽屉的单击事件,请参见此处

To listen for open and close events of the navigation drawer, see here . 要收听导航抽屉的打开和关闭事件,请参见此处

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM