DrawerLayout,ToolBar 和 TabHost 的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 的使用的主要内容,如果未能解决你的问题,请参考以下文章
DrawerLayout,ToolBar 和 TabHost 的使用
ToolBar和DrawerLayout的使用实现侧拉栏抽屉的开闭
Android使用ToolBar+DrawerLayout+NavigationView实现侧滑抽屉效果