Toolbar 導航控件及DrawerLayout 側滑菜單

package com.zdsoft.toolbar1130;

import android.support.v4.content.ContextCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private Toolbar tb;
    private Button bt;
    private DrawerLayout dl;
    private TextView tv_content;
    private ListView lv_menu;
    private List<String> list;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initDate();
        //按鈕監聽
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "你點擊了自定義按鈕", Toast.LENGTH_SHORT).show();
            }
        });
        //ToolBar內menu監聽
        tb.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.item_tz:
                        Toast.makeText(MainActivity.this, "通知", Toast.LENGTH_SHORT).show();
                        break;
                    case R.id.item_cx:
                        Toast.makeText(MainActivity.this, "查詢", Toast.LENGTH_SHORT).show();
                        break;
                    case R.id.item_zd:
                        Toast.makeText(MainActivity.this, "知道", Toast.LENGTH_SHORT).show();
                        break;
                    case R.id.item_gd:
                        Toast.makeText(MainActivity.this, "更多", Toast.LENGTH_SHORT).show();
                        break;
                    default:
                        break;

                }
                return false;
            }
        });
        //Toolbar圖標監聽
        tb.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (dl.isDrawerOpen(Gravity.LEFT)) {
                    dl.closeDrawer(Gravity.LEFT);
                } else {
                    dl.openDrawer(Gravity.LEFT);
                }
            }
        });
        //ListView內menu監聽
        lv_menu.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                tv_content.setText(list.get(position).toString());
                dl.closeDrawer(Gravity.LEFT);
            }
        });
    }

    private void initView() {
        tb = (Toolbar) findViewById(R.id.tb);
        tb.setNavigationIcon(R.drawable.ic_drawer_home);//設置圖標按鈕
        //設置標題及標題顏色
        tb.setTitle("首頁");
        tb.setTitleTextColor(ContextCompat.getColor(MainActivity.this, R.color.colorAccent));
        tb.inflateMenu(R.menu.menu);//設置ActionMenu
        bt = (Button) findViewById(R.id.bt);//實例化自定義控件
        dl = (DrawerLayout) findViewById(R.id.dl);
        tv_content = (TextView) findViewById(R.id.tv_content);
        lv_menu = (ListView) findViewById(R.id.lv_menu);

    }

    private void initDate() {
        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, getList());
        lv_menu.setAdapter(adapter);

    }

    public List<String> getList() {
        list = new ArrayList<String>();
        for (int i = 0; i < 10; i++) {
            list.add("第" + (i + 1) + "條");
        }
        return list;
    }
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        android:id="@+id/tb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary">

        <Button
            android:id="@+id/bt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="自定義" />

    </android.support.v7.widget.Toolbar>

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/dl"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/tv_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center" />

        <ListView
            android:id="@+id/lv_menu"
            android:layout_width="180dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:background="#ffffff">

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

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/item_tz"
        android:icon="@drawable/ic_notifications"
        android:title="通知"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/item_cx"
        android:icon="@drawable/ic_search"
        android:title="查詢"
        app:showAsAction="never" />
    <item
        android:id="@+id/item_zd"
        android:icon="@drawable/ic_zhihu_logo"
        android:title="知道"
        app:showAsAction="never" />
    <item
        android:id="@+id/item_gd"
        android:icon="@drawable/ic_menu_more_overflow"
        android:title="更多"
        app:showAsAction="never" />

</menu>

發佈了6 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章