MainActivity布局
package com.animee.day05;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import com.animee.day05.demo01.BasicDrawerLayoutActivity;
import com.animee.day05.demo02.BiliBiliActivity;
import com.animee.day05.demo03.SlidemenuActivity01;
import com.animee.day05.demo04.SlidemenuActivity02;
import com.animee.day05.demo05.SlidingmenuActivity03;
import com.animee.day05.demo06.SlidingmenuActivity04;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view) {
Intent intent = new Intent();
switch (view.getId()) {
case R.id.btn1:
intent.setClass(this, BasicDrawerLayoutActivity.class);
break;
case R.id.btn2:
intent.setClass(this, BiliBiliActivity.class);
break;
case R.id.btn3:
intent.setClass(this, SlidemenuActivity01.class);
break;
case R.id.btn4:
intent.setClass(this, SlidemenuActivity02.class);
break;
case R.id.btn5:
intent.setClass(this, SlidingmenuActivity03.class);
break;
case R.id.btn6:
intent.setClass(this, SlidingmenuActivity04.class);
break;
}
startActivity(intent);
}
}
布局
<?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"
android:padding="10dp"
tools:context="com.animee.day05.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="常见侧滑式布局"
android:textSize="22sp"
/>
<Button
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:textAllCaps="false"
android:text="DrawerLayout的基础介绍"/>
<Button
android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:textAllCaps="false"
android:text="DrawerLayout嵌套Toolbar,Fragment的使用"/>
<Button
android:id="@+id/btn3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:textAllCaps="false"
android:text="SlidingMenu的方法介绍"/>
<Button
android:id="@+id/btn4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:textAllCaps="false"
android:text="SlidingMenu的简单实例"/>
<Button
android:id="@+id/btn5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:textAllCaps="false"
android:text="SlidingMenu在布局当中的使用"/>
<Button
android:id="@+id/btn6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:textAllCaps="false"
android:text="SlidingFragmentActivity的介绍"/>
</LinearLayout>
demo01
BasicDrawerLayoutActivity
package com.animee.day05.demo01;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import com.animee.day05.R;
public class BasicDrawerLayoutActivity extends AppCompatActivity {
private DrawerLayout drawerLayout;
public String TAG = "xiaozhi";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_basic_drawer_layout);
// DrawerLayout 的父类也是ViewGroup
drawerLayout = (DrawerLayout) findViewById(R.id.basic_drawer);
// 设置DrawerLayout的滑动监听器
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
// 抽屉滑动时会被回调的方法
Log.i(TAG, "onDrawerSlide: ==="+slideOffset);
}
@Override
public void onDrawerOpened(View drawerView) {
// 抽屉被打开时会回调的方法
Log.i(TAG, "onDrawerOpened:");
}
@Override
public void onDrawerClosed(View drawerView) {
// 抽屉被关闭时会回调的方法
Log.i(TAG, "onDrawerClosed:");
}
@Override
public void onDrawerStateChanged(int newState) {
// 当抽屉的状态发生改变时会回调的方法 0:关闭 1:打开 2:滑动
Log.i(TAG, "onDrawerStateChanged: ==newState="+newState);
}
});
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.open_left:
drawerLayout.openDrawer(Gravity.LEFT); //打开左边的抽屉
// drawerLayout.closeDrawers(); //关闭抽屉
break;
case R.id.open_right:
drawerLayout.openDrawer(Gravity.RIGHT); //打开右边的抽屉
break;
}
}
}
布局 activity_basic_drawer_layout
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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:id="@+id/basic_drawer"
tools:context="com.animee.day05.demo01.BasicDrawerLayoutActivity">
<!-- DrawerLayout当中的第一个子view,表示中心显示的内容-->
<LinearLayout
android:id="@+id/content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/open_left"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="打开左边的抽屉"
android:onClick="onClick"/>
<Button
android:id="@+id/open_right"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="打开右边的抽屉"
android:onClick="onClick"/>
</LinearLayout>
<!--第二个子view:代表抽屉-->
<LinearLayout
android:id="@+id/left_content"
android:layout_width="260dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@mipmap/img01"
android:layout_gravity = "left">
<!--可以在左边的抽屉当中添加控件-->
</LinearLayout>
<!--第三个子view :代表抽屉-->
<LinearLayout
android:id="@+id/right_content"
android:orientation="vertical"
android:layout_width="220dp"
android:layout_gravity = "right"
android:layout_height="match_parent"
android:background="@color/colorPrimary">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是右边抽屉"
android:textSize="50sp"
android:textColor="#fff"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
demo02
BiliBiliActivity
package com.animee.day05.demo02;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import com.animee.day05.R;
public class BiliBiliActivity extends AppCompatActivity {
private Toolbar toolbar;
private DrawerLayout drawerLayout;
private FragmentManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bili_bili);
toolbar = (Toolbar) findViewById(R.id.toolbar);
drawerLayout = (DrawerLayout) findViewById(R.id.bilibili_drawer);
setToolbar();
// Fragment的动态加载
// 1.获取碎片管理者
manager = getSupportFragmentManager();
// 2.获取碎片事物对象
FragmentTransaction transaction = manager.beginTransaction();
// 3.替换布局,使用Fragment对象
transaction.replace(R.id.instead_layout,new NewFragment());
// 4.提交事物
transaction.commit();
}
private void setToolbar() {
// 1.设置toolbar的导航栏的图片
toolbar.setNavigationIcon(R.mipmap.menu);
// 2.设置logo
toolbar.setLogo(R.mipmap.ic_launcher);
// 3.加载menu到toolbar上
toolbar.inflateMenu(R.menu.toolbar_menu);
// 设置toolbar当中menu的点击事件
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.shop:
Toast.makeText(BiliBiliActivity.this,"您点击了购物界面,有钱么?",Toast.LENGTH_SHORT).show();
break;
case R.id.search:
break;
case R.id.info:
break;
}
return false;
}
});
// 给导航栏添加点击事件
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
drawerLayout.openDrawer(Gravity.LEFT);
}
});
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.drawer_tv1:
FragmentTransaction tran1 = manager.beginTransaction();
tran1.replace(R.id.instead_layout,new NewFragment());
tran1.commit();
drawerLayout.closeDrawers();
break;
case R.id.drawer_tv2:
FragmentTransaction tran2 = manager.beginTransaction();
tran2.replace(R.id.instead_layout,new YuleFragment()) ;
tran2.commit();
drawerLayout.closeDrawers();
break;
}
}
}
NewFragment
package com.animee.day05.demo02;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.animee.day05.R;
/**
* A simple {@link Fragment} subclass.
*/
public class NewFragment extends Fragment {
public NewFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_new, container, false);
}
}
YuleFragment
package com.animee.day05.demo02;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.animee.day05.R;
/**
* A simple {@link Fragment} subclass.
*/
public class YuleFragment extends Fragment {
public YuleFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_yule, container, false);
}
}
布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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:id="@+id/bilibili_drawer"
tools:context="com.animee.day05.demo02.BiliBiliActivity">
<LinearLayout
android:id="@+id/content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FD7299">
</android.support.v7.widget.Toolbar>
<LinearLayout
android:id="@+id/instead_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
<!--左边的抽屉的内容-->
<LinearLayout
android:id="@+id/left_layout"
android:layout_width="250dp"
android:layout_height="match_parent"
android:layout_gravity = "left"
android:background="#ffffff"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="180dp"
android:background="#FD7299"
>
<ImageView
android:id="@+id/drawer_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
android:layout_centerInParent="true"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/drawer_logo"
android:text="Android"
android:gravity="center"/>
</RelativeLayout>
<Button
android:id="@+id/drawer_tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="新闻"
android:background="@null"
android:onClick="onClick"
android:drawableLeft="@mipmap/xinwen"/>
<Button
android:id="@+id/drawer_tv2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="娱乐"
android:onClick="onClick"
android:background="@null"
android:drawableLeft="@mipmap/xinwen"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
demo03
SlidemenuActivity01
package com.animee.day05.demo03;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.animee.day05.R;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
// Slidingmenu 需要掌握的方法
public class SlidemenuActivity01 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_slidemenu01);
// `1.创建SlideMenu的对象
SlidingMenu menu = new SlidingMenu(this);
// 2.设置菜单的模式
menu.setMode(SlidingMenu.LEFT_RIGHT); //设置既能够左右滑
// 3.设置滑动的模式 共三种
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
// 4.设置滑动出来的菜单的宽度 单位是px
menu.setBehindOffset(300);
// 5.设置左侧滑动菜单阴影部分的颜色和宽度
menu.setShadowDrawable(R.color.colorAccent);
menu.setShadowWidth(4); //4px
menu.setSecondaryShadowDrawable(R.color.colorPrimaryDark);
// 6.设置淡入淡出的效果
menu.setFadeEnabled(true);
menu.setFadeDegree(0.5f);
// 7.将SlidingMenu放置在activity上,产生联系
menu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
// 8.设置菜单显示内容的方法
menu.setMenu(R.layout.fragment_new); //左边菜单滑动显示的内容
menu.setSecondaryMenu(R.layout.fragment_yule); //右边菜单滑动显示的内容
// 9.事件的处理
menu.setOnOpenListener(new SlidingMenu.OnOpenListener() {
@Override
public void onOpen() {
Log.i("xiaozhi", "onOpen: ");
}
});
}
}
布局
<?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="com.animee.day05.demo03.SlidemenuActivity01">
<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="22sp"
android:text="天苍苍,野茫茫,一枝梨花压海棠!!"/>
</LinearLayout>
demo04
SlidemenuActivity02
package com.animee.day05.demo04;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.animee.day05.R;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
public class SlidemenuActivity02 extends AppCompatActivity {
private ListView lv;
private TextView tv;
private String[]colors = {"红色","绿色","蓝色","黑色","灰色","粉色","黄色"};
private int[]colorRes = {Color.RED,Color.GREEN,Color.BLUE,Color.BLACK,Color.GRAY,Color.rgb(251,110,223),Color.YELLOW};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_slidemenu02);
// 1.
final SlidingMenu menu = new SlidingMenu(this);
// 2.
menu.setMode(SlidingMenu.LEFT);
// 3.
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
// 4.
menu.setBehindOffset(300);
// 5.
menu.setShadowDrawable(R.color.colorAccent);
menu.setShadowWidth(8);
// 6.
menu.setFadeEnabled(true);
menu.setFadeDegree(0.6f);
// 7.
menu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
// 8.
menu.setMenu(R.layout.menu03);
lv = (ListView) findViewById(R.id.lv_menu);
tv = (TextView) findViewById(R.id.tv2);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, colors);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
tv.setTextColor(colorRes[position]);
menu.toggle();
}
});
}
}
布局
<?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="com.animee.day05.demo04.SlidemenuActivity02">
<TextView
android:id="@+id/tv2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="床前明月光,疑是地上霜。\n举头望明月,低头学Android。"
android:textSize="22sp"
android:gravity="center"/>
</LinearLayout>
demo05
SlidingmenuActivity03
package com.animee.day05.demo05;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.animee.day05.R;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
// 如何在布局当中创建SlidingMenu对象
public class SlidingmenuActivity03 extends AppCompatActivity {
private SlidingMenu menu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_slidingmenu03);
menu = (SlidingMenu) findViewById(R.id.slidingmenu);
}
}
/**
* SlidingMenu是一个第三方侧滑类控件,通过它可以得到侧滑的效果。
* demo03: 主要讲解slidingmenu在activity当中的使用和常见的方法的设置。
* demo04: 使用slidingmenu做了小实例
* demo05: 讲解了slidingmenu在布局当中的引用,通过包名.类名进行引用。
* 在代码当中设置的方法,在布局当中可以通过app作为前缀进行
* 引用。
* */
布局
<?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="com.animee.day05.demo05.SlidingmenuActivity03">
<com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
android:id="@+id/slidingmenu"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:mode="left"
app:touchModeAbove="margin"
app:behindOffset="200dp"
app:fadeEnabled="true"
app:fadeDegree="0.5"
app:shadowDrawable="@color/colorPrimary"
app:shadowWidth="2dp"
app:viewAbove="@layout/fragment_yule"
app:viewBehind="@layout/fragment_new">
</com.jeremyfeinstein.slidingmenu.lib.SlidingMenu>
</LinearLayout>
demo06
SlidingmenuActivity04
package com.animee.day05.demo06;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import com.animee.day05.R;
import com.animee.day05.demo02.YuleFragment;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;
// 第一步:自定义类,继承与SlidingFragmentActivity
public class SlidingmenuActivity04 extends SlidingFragmentActivity {
// 第二部:将onCreate方法的修饰符修改为public
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_slidingmenu04);
// 第三部:获取SlidingMenu的对象
SlidingMenu menu = getSlidingMenu();
// 第四部:设置slidingmenu的相关属性
menu.setMode(SlidingMenu.LEFT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setBehindOffset(300);
menu.setShadowDrawable(R.color.colorAccent);
menu.setShadowWidth(6);
menu.setFadeEnabled(true);
menu.setFadeDegree(0.5f);
// 设置左边的菜单被fragment替换的方法
// menu.setMenu(R.layout.left_behind);
setBehindContentView(R.layout.left_behind);
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.left_slide,new YuleFragment());
transaction.commit();
}
}
布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
tools:context="com.animee.day05.demo06.SlidingmenuActivity04">
</android.support.constraint.ConstraintLayout>
子布局
fragment_new
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.animee.day05.demo02.NewFragment"
android:background="@mipmap/img01">
</FrameLayout>
fragment_yule
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.animee.day05.demo02.YuleFragment"
android:background="@mipmap/img03">
<!-- TODO: Update blank fragment layout -->
</FrameLayout>
left_behind
<?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:id="@+id/left_slide"
android:orientation="vertical">
</LinearLayout>
menu03
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/lv_menu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@color/colorPrimary"
android:dividerHeight="1dp"
></ListView>
</LinearLayout>
Menu菜单文件
toolbar_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/shop"
android:title="购物"
android:icon="@mipmap/shop"
app:showAsAction="always"/>
<item android:id="@+id/info"
android:title="客服"
android:icon="@mipmap/person"
app:showAsAction="always"/>
<item android:id="@+id/search"
android:title="搜索"
android:icon="@mipmap/search"
app:showAsAction="always"/>
</menu>