金谷证券,2018新狗年对联带横批,夏普sh330t
ActionBarCompat-Basic Demo下载地址:https://github.com/googlesamples/android-ActionBarCompat-Basic/#readme
Android ActionBar样式生成器:
ActionBar官方说明:https://developer.android.google.cn/reference/android/support/v7/app/ActionBar
Menu官方说明:https://developer.android.google.cn/reference/android/view/Menu
Menu官司方说明:https://developer.android.google.cn/reference/android/view/MenuItem
示例展示了在基本页面中创建和使用ActionBar菜单:
import android.os.Bundle;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sample_main); } /** * 创建并实例化菜单,添加菜单项,返回true则显示菜单。 */ @Override public boolean onCreateOptionsMenu(Menu menu) { // 绑定菜单布局文件,布局文件已定义两个菜单子项refresh和settings getMenuInflater().inflate(R.menu.main, menu); // 动态添加location菜单子项,菜单子项id在文件ids.xml中定义
// 第一个int类型的groupID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。
// 第二个int类型的item ID参数,代表的是项目编号。这个参数非常重要,一个itemID对应一个menu中的选项。在后面使用菜单的时候,就靠这个item ID来判断你使用的是哪个选项。
// 第三个int类型的orderID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的显示顺序来显示。(参考MenuItem.getOrder())
// 第四个String类型的title参数,表示选项中显示的文字。
MenuItem locationItem = menu.add(0, R.id.menu_location, 0, R.string.menu_location);
locationItem.setIcon(R.drawable.ic_action_location); // 设置菜单子项如何显示,可选值:
// SHOW_AS_ACTION_ALWAYS:总是显示在ActionBar里,建议最多不超过两个子项,太多在小屏幕设备上会影响体验。
// SHOW_AS_ACTION_IF_ROOM:由系统决定如何摆放。
// SHOW_AS_ACTION_NEVER:不将子项显示在ActionBar里。
// SHOW_AS_ACTION_WITH_TEXT:子项显示为文本按钮,不管是否有设置图标。
// 原Demo使用的是MenuItemCompat.setShowAsAction(locationItem, MenuItem.SHOW_AS_ACTION_IF_ROOM);但这个方法在API 26以后已经被其他方法取代。 locationItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); return true; } /** * 菜单事件处理,如果处理完成,则返回true */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_refresh: // Here we might start a background refresh task return true; case R.id.menu_location: // Here we might call LocationManager.requestLocationUpdates() return true; case R.id.menu_settings: // Here we would open up our settings activity return true; } return super.onOptionsItemSelected(item); } }
ActionBar主布局文件,menu文件夹下的main.xml,另外Android Studio提供快速创建菜单布局文件的方法:
<?xml version="1.0" encoding="utf-8"?> <!-- 这里添加了新的support命名空间,允许以向后兼容的方式使用showAsAction属性 --> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:support="http://schemas.android.com/apk/res-auto" >
<!-- showAsAction设置为ifRoom --> <item android:id="@+id/menu_refresh" android:icon="@drawable/ic_action_refresh" android:title="@string/menu_refresh" support:showAsAction="ifRoom"/> <!-- showAsAction设置为never --> <item android:id="@+id/menu_settings" android:icon="@drawable/ic_action_settings" android:title="@string/menu_settings" support:showAsAction="never"/> </menu>
values文件夹下创建ids.xml文件,用于定义动态添加的子菜单location:
<?xml version="1.0" encoding="utf-8"?> <resources> <item name="menu_location" type="id"/> </resources>
Demo截图如下,点击右上角三点弹出settings菜单子项:
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android apk 项目一键打包并上传到蒲公英的实现方法
Android 自定义LineLayout实现满屏任意拖动功能的示例代码
android 限制某个操作每天只能操作指定的次数(示例代码详解)
Android 集成 google 登录并获取性别等隐私信息的实现代码
网友评论