Andriod studio 學習 之 ActionBar, DrawLayout ,SlidingMenu

ToolBar常用的方法

1.supportRequestWindowFeature(Window.FEATURE_NO_TITLE);去掉標題欄;
2.Toolbar.setLogo(),設置logo圖片;
3.Toolbar.setTitle().設置標題;
4.Toolbar.setSubTitle()設置子標題;
5.Toolbar.setTitleTextColor(int color);設置標題文字顏色;
6.Toolbar.setSubtitleTextColor();設置子標題文字顏色;
7.setTitleMargin(int start, int top, int end, int bottom);設置標題margin值; 8.onCreateOptionsMenu,getMenuInflater().inflate(R.menu.menu,menu) 設置菜單在給Toolbar設置爲actionbar時使用;
9.Toolbar.setOnMenuItemClickListener();Toolbar綁定menu監聽;
10.Toolbar.inflateMenu(R.menu.menu)在Toolbar沒有替換actionbar時使用;
11.setSupportActionBar(mToolbar);設置toolbar替換actionbar;
12.getLayoutInflater().inflate(R.layout.view_tv,bar);Toolbar添加自定義view

DrawerLayout常用的方法

DrawerLayout.isDrawerOpen(Gravity.LEFT)是否開啓;
DrawerLayout.openDrawer(Gravity.LEFT);開啓抽屜
DrawerLayout.closeDrawer(Gravity.RIGHT);關閉抽屜

效果圖

在這裏插入圖片描述
在這裏插入圖片描述

ToolBar和DrawerLayout代碼

activity佈局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    tools:context=".day009.ToolBar">
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        >
    </android.support.v7.widget.Toolbar>

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/draw"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#63A4E6"
            >
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="打開抽屜"
                android:onClick="open"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="關閉抽屜"
                android:onClick="close"/>
            <TextView
                android:id="@+id/tv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="200dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:background="#BDC7D1"
            android:layout_gravity="right"
            >
            <Button
                android:id="@+id/ctbtn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="抽屜中的按鈕" />
        </LinearLayout>
    </android.support.v4.widget.DrawerLayout>
</LinearLayout>

自定義view佈局

<?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">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="自定義的view"
    />
</LinearLayout>

創建一個menu

<?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/menu1" android:title="搜索" android:icon="@mipmap/ic_launcher_round" app:showAsAction="never"></item>
    <item android:id="@+id/menu2" android:title="添加" android:icon="@mipmap/ic_launcher_round" app:showAsAction="never"></item>
</menu>

activity中的代碼

package com.example.study.day009;

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.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.example.study.R;

public class ToolBar extends AppCompatActivity {
    private Toolbar toolbar;
    private DrawerLayout draw;
    private TextView tv;
    private Button ctbtn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_tool_bar);
        draw = (DrawerLayout) findViewById(R.id.draw);
        tv = (TextView) findViewById(R.id.tv);
        ctbtn = (Button) findViewById(R.id.ctbtn);
        toolbar = (Toolbar) findViewById(R.id.toolbar);

        toolbar.setLogo(R.mipmap.ic_launcher_round);
        toolbar.setNavigationIcon(R.mipmap.ic_launcher_round);
        toolbar.setTitle("工具條");
        toolbar.setSubtitle("1705A");
        View view = LayoutInflater.from(this).inflate(R.layout.tit, null);
        toolbar.addView(view);//自定義部分

        setSupportActionBar(toolbar);

    }

    @Override//創建菜單
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu,menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override//添加事件
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId()==R.id.menu1){
            Toast.makeText(this, "搜索", Toast.LENGTH_SHORT).show();
        }else if (item.getItemId()==R.id.menu2){
            Toast.makeText(this, "添加", Toast.LENGTH_SHORT).show();
        }
        return super.onOptionsItemSelected(item);
    }

    public void open(View view) {
        draw.openDrawer(Gravity.RIGHT);
    }

    public void close(View view) {
        draw.closeDrawer(Gravity.RIGHT);
    }
}
Slidingmenu

首先需要導入一個第三方包

activity佈局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    tools:context=".day009.Slidingmenu">

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

activity代碼

package com.example.study.day009;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.LinearLayout;

import com.example.study.R;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

import java.util.List;

public class Slidingmenu extends AppCompatActivity {
    private LinearLayout layout;
    private FragmentManager manager;
    private SlidingMenu slidingMenu;
    private firstFragment fragment1;
    private twoFragment fragment2;
    private threeFragment fragment3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_slidingmenu);


        layout = (LinearLayout) findViewById(R.id.layout);

        slidingMenu = new SlidingMenu(this);
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//滑動方式,整個屏幕的滑動
        slidingMenu.setMode(SlidingMenu.LEFT);//滑出來的方向
        View view = LayoutInflater.from(this).inflate(R.layout.item1, null);
//        slidingMenu.showContent();
        slidingMenu.setMenu(view);
        slidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);//把slidingMenu和activity關聯

        fragment1 = new firstFragment();
        fragment2 = new twoFragment();
        fragment3 = new threeFragment();
        manager = getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.commit();

        slidingMenu.getMenu().findViewById(R.id.bt1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FragmentTransaction transaction1 = manager.beginTransaction();
                transaction1.replace(R.id.layout,fragment1);
                transaction1.commit();
                slidingMenu.showContent();
            }
        });
        slidingMenu.getMenu().findViewById(R.id.bt2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FragmentTransaction transaction2 = manager.beginTransaction();
                transaction2.replace(R.id.layout,fragment2);
                transaction2.commit();
                slidingMenu.showContent();
            }
        });
        slidingMenu.getMenu().findViewById(R.id.bt3).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FragmentTransaction transaction3 = manager.beginTransaction();
                transaction3.replace(R.id.layout,fragment3);
                transaction3.commit();
                slidingMenu.showContent();
            }
        });
    }
}

三個fragment可以自行手動創建,按需求添加即可.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章