ToolBar的使用
来源:互联网 发布:空间分辨率知乎 编辑:程序博客网 时间:2024/06/06 11:03
1.为了版本冲突添加依赖
compile 'com.android.support:appcompat-v7:26.1.0'
2.定义类型<style name="AppTheme.Base"><!--将ActionBar隐藏,这里使用ToolBar--><item name="windowActionBar">false</item><!-- 使用 API Level 22以上编译的话,要拿掉前綴字 --><item name="windowNoTitle">true</item><!--colorPrimaryDark对应状态栏的颜色--><item name="colorPrimaryDark">@color/statusColor</item><!--colorPrimary 对应ToolBar的颜色--><item name="colorPrimary">@color/toolBarColor</item><!--colorAccent 对应EditText编辑时、RadioButton选中、CheckBox等选中时的颜色。--><item name="colorAccent">@color/editColor</item><!--窗口的颜色--><item name="android:windowBackground">@color/widowColor</item>3.改变Mainfast中的Them<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme.Base">//需要改变的东西 <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity></application>4.创建menu
1.创建menu文件夹:
src上右键->new->android rescourse directory->Resocurse type=menu,这样就创建了一个menu文件夹
2.创建menu文件:
在menu文件夹中创建layout文件夹menu_main内容如下:<?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" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> <item android:id="@+id/action_edit" android:icon="@mipmap/ic_launcher" android:orderInCategory="80" android:title="输入" app:showAsAction="ifRoom" /> <item android:id="@+id/action_share" android:icon="@mipmap/ic_launcher" android:orderInCategory="90" android:title="分享" app:showAsAction="ifRoom" /> <item android:id="@+id/action_overflow" android:orderInCategory="100" android:title="更多" android:icon="@mipmap/ic_launcher" app:showAsAction="always" /></menu>5.color中的资源<!-- toolBar color --><color name="toolBarColor">#0000ff</color><!--EditText,RadioButton,CheckBox color--><color name="editColor">#FD87A9</color><!--Window color--><color name="widowColor">#ffffff</color>6.布局:action_overflow_popwindow<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#274B5E" android:orientation="vertical" android:padding="10dp" > <LinearLayout android:id="@+id/ll_item1" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="哈哈" android:textColor="#ffffff" android:textSize="20sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_item2" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="呵呵" android:textColor="#ffffff" android:textSize="20sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_item3" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="嘻嘻" android:textColor="#ffffff" android:textSize="20sp" /> </LinearLayout></LinearLayout>7.主布局<?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.bwie.day15.MainActivity"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary"> <!--添加Toolbar的子控件--> <Button android:id="@+id/btn_diy" android:layout_width="60dp" android:layout_height="wrap_content" android:layout_gravity="right" android:background="#80ffffff" android:text="自定义按钮" android:textColor="#000000" android:textSize="11sp" /> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center" android:gravity="center" android:text="首页" android:textColor="@android:color/black" android:textSize="20sp" /> </android.support.v7.widget.Toolbar> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Hello" android:textColor="@android:color/black" android:textSize="30sp" /></android.support.constraint.ConstraintLayout>8.主要代码import android.graphics.Color;import android.graphics.Rect;import android.graphics.drawable.ColorDrawable;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.Toolbar;import android.view.Gravity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.PopupWindow;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener { Toolbar mToolbar; Toast mToast; PopupWindow mPopupWindow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mToast = Toast.makeText(this, "", Toast.LENGTH_SHORT); mToast.setGravity(Gravity.CENTER, 0, 0); mToolbar = (Toolbar) findViewById(R.id.toolbar); // App Logo// mToolbar.setLogo(R.drawable.app_icon); // 主标题,默认为app_label的名字 mToolbar.setTitle("Title"); mToolbar.setTitleTextColor(Color.YELLOW); // 副标题 mToolbar.setSubtitle("Sub title"); mToolbar.setSubtitleTextColor(Color.parseColor("#80ff0000")); //侧边栏的按钮 mToolbar.setNavigationIcon(R.mipmap.ic_launcher); //取代原本的actionbar setSupportActionBar(mToolbar); //设置NavigationIcon的点击事件,需要放在setSupportActionBar之后设置才会生效, //因为setSupportActionBar里面也会setNavigationOnClickListener mToolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mToast.setText("click NavigationIcon"); mToast.show(); } }); //设置toolBar上的MenuItem点击事件 mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.action_edit: mToast.setText("click edit"); break; case R.id.action_share: mToast.setText("click share"); break; case R.id.action_overflow: //弹出自定义overflow popUpMyOverflow(); return true; } mToast.show(); return true; } }); //ToolBar里面还可以包含子控件 mToolbar.findViewById(R.id.btn_diy).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mToast.setText("点击自定义按钮"); mToast.show(); } }); mToolbar.findViewById(R.id.tv_title).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mToast.setText("点击自定义标题"); mToast.show(); } }); } //如果有Menu,创建完后,系统会自动添加到ToolBar上 @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.menu_main, menu); return true; } /** * 弹出自定义的popWindow */ public void popUpMyOverflow() { //获取状态栏高度 Rect frame = new Rect(); getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); //状态栏高度+toolbar的高度 int yOffset = frame.top + mToolbar.getHeight(); if (null == mPopupWindow) { //初始化PopupWindow的布局 View popView = getLayoutInflater().inflate(R.layout.action_overflow_popwindow, null); //popView即popupWindow的布局,ture设置focusAble. mPopupWindow = new PopupWindow(popView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true); //必须设置BackgroundDrawable后setOutsideTouchable(true)才会有效 mPopupWindow.setBackgroundDrawable(new ColorDrawable()); //点击外部关闭。 mPopupWindow.setOutsideTouchable(true); //设置一个动画。 mPopupWindow.setAnimationStyle(android.R.style.Animation_Dialog); //设置Gravity,让它显示在右上角。 mPopupWindow.showAtLocation(mToolbar, Gravity.RIGHT | Gravity.TOP, 0, yOffset); //设置item的点击监听 popView.findViewById(R.id.ll_item1).setOnClickListener(this); popView.findViewById(R.id.ll_item2).setOnClickListener(this); popView.findViewById(R.id.ll_item3).setOnClickListener(this); } else { mPopupWindow.showAtLocation(mToolbar, Gravity.RIGHT | Gravity.TOP, 0, yOffset); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.ll_item1: mToast.setText("哈哈"); break; case R.id.ll_item2: mToast.setText("呵呵"); break; case R.id.ll_item3: mToast.setText("嘻嘻"); break; } //点击PopWindow的item后,关闭此PopWindow if (null != mPopupWindow && mPopupWindow.isShowing()) { mPopupWindow.dismiss(); } mToast.show(); }}
阅读全文
0 0
- ToolBar控件的使用
- Toolbar的高级使用
- Android --Toolbar的使用
- ToolBar的使用
- android toolbar的使用
- ToolBar的使用
- toolbar的使用
- ToolBar的基本使用
- ToolBar的使用
- toolbar的使用
- ToolBar的简单使用
- ToolBar的使用
- Toolbar的使用.md
- ToolBar的使用
- Toolbar的使用总结
- ToolBar的基本使用
- Toolbar的使用详解
- ToolBar的使用
- TensorFlow学习--tensorflow图像预处理
- 一维信号小波阈值去噪
- Python开发的10个小贴士
- chcon
- 数据库五种约束以及添加方法
- ToolBar的使用
- 取消edittext自动弹出软键盘
- 创建web项目,servlet,部署Tomact
- C++ Windows非阻塞UDP通信源码
- PHP:微信小程序 微信支付服务端集成实例详解及源码下载
- Python随机森林
- 学习笔记(一)http通信本质
- Qt程序各个平台打包发布及安装程序大全
- 数据怎么不对?测试一下!js排序!