【官网翻译】设置ToolBar
来源:互联网 发布:mac模拟器电脑版 编辑:程序博客网 时间:2024/05/17 07:53
一.设置ToolBar
- 在app下的gradle添加,v7包的支持,参考链接
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) testCompile 'junit:junit:4.12' //compile dep compile com.android.support:appcompat-v7:24.2.1//V7包}
- 将Activity继承AppCompatActivity.
public class ToolbarActivity extends AppCompatActivity { // ...}
3.在manifest.xml文件中,添加主题
<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
4.在布局文件中添加.toolbar控件
<android.support.v7.widget.Toolbar android:id="@+id/my_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
5.在toobarActivity中添加代码
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar); }
二、添加toolbar的Actions
- AppBar允许你添加button操作一些动作,资源
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <!-- "Mark Favorite", should appear as action button if possible --> <item android:id="@+id/action_favorite" android:icon="@drawable/ic_favorite_black_48dp" android:title="@string/action_favorite" app:showAsAction="ifRoom"/> <!-- Settings, should always be in the overflow --> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never"/></menu>
- app: showAsAction 显示在Appbar上的状态.
ifroom:代表如果有足够的控件就显示在bar上,没有的话,就则点到menu的多项选择按钮中。
never:表示不显示在appbar上,折叠到menu的多项选择按钮中。
2.Action Buttons的回调事件处理,onOptionsItemSelected()
- 在Activity中设置Menu
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.example_menu, menu); return true;}
- 给Menu设置Action操作
@Overridepublic boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_settings: Toast.makeText(this, "setting", Toast.LENGTH_SHORT).show(); return true; case R.id.action_favorite: Toast.makeText(this, "favorite", Toast.LENGTH_SHORT).show(); return true; default: // 交给父类处理 return super.onOptionsItemSelected(item); }}
三、添加返回按钮
声明父类Activity
- 表示次当前Activity的父类Activity是谁,返回的时候为该属性声明的Activity.
<activity android:name=".ToolbarActivity" android:parentActivityName=".MainActivity"> <!-- 用于兼容4.0及其一下的版本 --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"/></activity>
四、给ActionBar添加其他的通用功能
介绍
- SearchView
- ShareActionProvider,分享信息到其他app
- 定义自己的action provider
添加ActionView
SearchView
- 在Menu.xml中添加一个Item
<item android:id="@+id/action_search" android:title="@string/action_search" android:icon="@drawable/ic_search" app:showAsAction="ifRoom|collapseActionView" app:actionViewClass="android.support.v7.widget.SearchView" />
collapseActionView:表示点击的时候,会充满真个ActionBar
actionViewClass: v7的控件,也可以自己编写控件.
- 在这里onCreateOptionsMenu添加UI显示控件。
@Overridepublic boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main_activity_actions, menu); MenuItem searchItem = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); // Configure the search info and add any event listeners... return super.onCreateOptionsMenu(menu);}Re
- 添加扩展监听
- 当这个Bar的item元素有一个
collapseActionView
属性,这个App会首先展示这个定义的icon,当我们点击后会触发.
onOptionsItemSelected()。如果子类重载了他,你的重载方法必须实现, super.onOptionsItemSelected()才行。 - 当你Appbar出一扩展或则搜索状态时,你要做一些事情,你可以定义一个MenuItem.onActionExpandLisener,并且通过
setOnActionExpandListener()
设置.
- 当这个Bar的item元素有一个
@Overridepublic boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.options, menu); // ... // Define the listener OnActionExpandListener expandListener = new OnActionExpandListener() { @Override public boolean onMenuItemActionCollapse(MenuItem item) { // Do something when action item collapses return true; // Return true to collapse action view } @Override public boolean onMenuItemActionExpand(MenuItem item) { // Do something when expanded return true; // Return true to expand action view } }; // Get the MenuItem for the action item MenuItem actionMenuItem = menu.findItem(R.id.myActionItem); // Assign the listener to that action item MenuItemCompat.setOnActionExpandListener(actionMenuItem, expandListener); // Any other things you have to do when creating the options menu… return true;}
添加一个Action Provider
在menu.xml中添加下面的代码,添加一个属性`actionProviderClass` ,并且添加一个全名.可以允许你的App分享数据到其他App中.
<item android:id="@+id/action_share" android:title="@string/share" app:showAsAction="ifRoom" app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>
一般,不需要我们定义icon,他有内置的图片。创建自定义Provider查看链接[ActionProvider](https://developer.android.com/reference/android/support/v4/view/ActionProvider.html)参考链接
- http://www.jianshu.com/p/79604c3ddcae
0 0
- 【官网翻译】设置ToolBar
- pb - toolbar - 设置字体
- MFC是设置ToolBar
- toolBar主题设置
- 设置toolbar标题居中
- Toolbar设置标题居中
- ToolBar的样式设置
- Toolbar popupmenu 样式设置
- toolbar标题设置居中
- Toolbar 设置OverFlow 图片
- Google Toolbar居然可以翻译英文
- [翻译]The Library In Your Toolbar
- Unity3D说明文档翻译-The Toolbar
- Toolbar 设置菜单颜色/图片
- ToolBar样式颜色,图标设置
- Toolbar设置图标,菜单属性
- Toolbar menu 分割线设置
- Toolbar标题居中怎么设置
- iOS大神读源码
- strust_入门教程
- [FT][10+]NOIP 2004 虫食算
- easyUI中操作的拼写
- JSP JavaBean
- 【官网翻译】设置ToolBar
- 大数运算
- 子程序中的return
- Android中ConfigChanges属性
- 使用责任链模式实现一个符合开闭原则的判断流程
- 使用 Eclipse Memory Analyzer 进行堆转储文件分析
- sql server触发器
- 数学 hdu 2601 (An easy problem)
- gson java对象与json转换(实例代码说明及教程)