DrawerLayout,ToolBar 和 TabHost 的使用
ActionBar 定义起来不方便
toolbar: 最重要的特性,显示menu菜单,右上角三个点的菜单按钮,使用灵活
使用:1,布局文件,包裹LinearLayout 放imageView, 或者ImageButton
2,去除标题栏Action(清单文件中设置主题Theme.AppCompat.NoTitle)
3,setActionBar( toolbar ); Activity extends AppCompatActivity
4,创建menu文件夹下面的menu.xml文件
- <?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/menu_search"
- android:title="搜索"
- android:icon="@drawable/actionbar_search_icon"
- app:showAsAction="always" /> // 总是显示在toolbar上
- <item
- android:id="@+id/menu_search1"
- android:icon="@drawable/actionbar_search_icon"
- android:title="搜索1"
- app:showAsAction="ifRoom" /> //toolbar有地方就显示
- <item
- android:id="@+id/menu_search2"
- android:icon="@drawable/actionbar_search_icon"
- android:title="搜索2"
- app:showAsAction="never" /> //是否作为菜单项,隐藏在右上角 的三个点里面
- </menu>
- package cn.zhw.demo;
- import android.nfc.tech.NfcB;
- import android.support.v4.app.FragmentTabHost;
- import android.support.v4.widget.DrawerLayout;
- import android.support.v7.app.ActionBarDrawerToggle;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.support.v7.widget.Toolbar;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.widget.TabHost;
- import android.widget.Toast;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
- setSupportActionBar(toolbar);
- // setTitle("你好啊");
- getSupportActionBar().setTitle("heihehie");
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawerlayout);
- ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
- this,drawerLayout,toolbar,R.string.app_name,R.string.app_name);
- drawerLayout.addDrawerListener(toggle);// 面板展开的监听设置给 Toogle
- toggle.syncState();// 初始化 toogle 的绘制内容
- // 设置底部栏
- FragmentTabHost tabHost = (FragmentTabHost) findViewById(R.id.tabhost);
- tabHost.setup(this,getSupportFragmentManager(),R.id.container);// 初始化 tabhost
- // 添加一个 tab
- TabHost.TabSpec tab1 = tabHost.newTabSpec("news");// 创建tab对象
- tab1.setIndicator("资讯");// 设置tab 内容
- Bundle arg = new Bundle();
- arg.putString("content","资讯界面");
- tabHost.addTab(tab1,TestFragment.class,arg);// 将tab添加到底部栏
- // 再添加一个 Tab
- TabHost.TabSpec tab2 = tabHost.newTabSpec("tweet");
- tab2.setIndicator("动弹");
- Bundle arg2 = new Bundle();
- arg2.putString("content","动弹界面");
- tabHost.addTab(tab2,TestFragment.class,arg2);
- }
- @Override
- // 为 Activity 生成菜单,ToolBar已经被设置为标题栏,这个菜单会自动显示到 ToolBar 上
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.activity_main,menu);
- return super.onCreateOptionsMenu(menu);
- }
- @Override
- // 目录菜单的点击响应
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()){
- case R.id.menu_search:
- Toast.makeText(this, "跳转到搜索界面", Toast.LENGTH_SHORT).show();
- break;
- }
- return super.onOptionsItemSelected(item);
- }
- }
DrawerLayout,ToolBar 和 TabHost 的使用的更多相关文章
- 安卓Design包之NavigationView结合DrawerLayout,toolbar的使用,FloatingActionButton
注意:使用前需要添加Design依赖包,使用toolbar时需要隐藏标题头 FloatingActionButton 悬浮按钮:FloatingActionButton是重写ImageView的,所有 ...
- Android 使用Toolbar+DrawerLayout快速实现仿“知乎APP”侧滑导航效果
在以前,做策划导航的时候,最常用的组件便是SlidingMenu了,当初第一次用它的时候觉得那个惊艳啊,体验可以说是非常棒. 后来,Android自己推出了一个可以实现策划导航的组件DrawerLay ...
- 安卓Design包之Toolbar控件的使用
转自:ToolBar的使用 ToolBar的出现是为了替换之前的ActionBar的各种不灵活使用方式,相反,ToolBar的使用变得非常灵活,因为它可以让我们自由往里面添加子控件.低版本要使用的话, ...
- android中抽屉布局DrawerLayout的使用
这个抽屉布局类似于手机QQ的主界面,点击左上角头像,会从界面左侧弹出一个抽屉,展示一些内容. 首先是布局界面activity_main.xml: <?xml version="1.0& ...
- Androd Toolbar 的简单使用(转)
14年Android开发者大会提出了Android5.0 系统以及 材料设置 Material Design.在 材料设计中推出了大量的UI效果,其中某些功能 已添加进 兼容包,所以可以在低版本中来实 ...
- <Android 基础(七)> DrawerLayout and NavigationView
介绍 DrawerLayout是Support Library包中实现了侧滑菜单效果的控件 android.support.v4.widget.DrawerLayout NavigationView是 ...
- Android 高大上的侧滑菜单DrawerLayout,解决了不能全屏滑动的问题
DrawerLayout预览 DrawerLayout主要功能就是 实现侧滑菜单效果的功能,并且可以通过增加一些设置来实现高大上的效果,那么就请看动态图: 注意左上角那个图标,有木有很好玩,哈哈. ...
- 使用Design包实现QQ动画侧滑效果和滑动菜单导航
Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个supp ...
- 安卓Design之NavigationView的使用
前面讲解了Design包下的TabLayout的使用,下面将带来NavagationView和DrawLayout以及toolbar的联动. 项目已经同步至:https://github.com/na ...
随机推荐
- WebForm页面生命周期WEBFORM_ASPNET控件树的生成和作用
WebForm页面生命周期WEBFORM_ASPNET控件树的生成和作用 摘要 页面类是如何结合后台文件类生成整个页面的HTML的代码和后台输出的代码输出到浏览器中呢?这就牵扯到Asp.net页面生命 ...
- iOS获取程序运行平台
下面这个博客里面写的很清楚 http://blog.sina.com.cn/s/blog_890a737301014fim.html
- HDU3930(离散对数与原根)
题目:Broot 题意:给出k,m,newx的值,求方程x^k(mod m)=newx的解,其中m为素数. 解法步骤: (1)先暴力求m的原根g (2)大步小步求g^t1(mod m)=newx (3 ...
- easyui tree 的数据格式转换
一般用来储存树数据的数据库表都含有两个整型字段:id pid,所以我们查询出来的List一般是这样的(约定pId为-1的节点为根节点): var serverList = [ {id : 2,pid ...
- linux memcached 安装
下载并安装Memcache服务器端服务器端主要是安装memcache服务器端.下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz ...
- PHP5.3 里面数组的的实现方式
typedef struct _Bucket { char *key; void *value; struct _Bucket *next; } Bucket; typedef struct _Has ...
- VC++实现小托盘的处理
// 实验一Dlg.cpp : implementation file // #include "stdafx.h" #include "实验一.h" #inc ...
- [C++STDlib基础]关于C标准输入输出的操作——C++标准库头文件<cstdio>
网上实例 总结 /* _STD_BEGIN using _CSTD clearerr; using _CSTD fclose; using _CSTD feof; using _CSTD ferror ...
- autotools入门笔记(二)——创建和使用静态库、动态库
带有静态库或者动态库的工程的构建过程与上一节()只包含一个源文件的工程的构建过程是类似的.只是对于复杂的工程,如果包含多个还有源文件的目录时,需要对每个包含源文件的目录执行构建过程,另外创建和使用库文 ...
- 结构-行为-样式-Javascript 深度克隆函数(转)
突然想到有一回面试的时候有一个问题一直挂在心头,于是乎在网上找了找,这个比较好: //深度克隆 function deepClone(obj) { var result, oClass = isCla ...