ActionBar

ActionBar现在称为App Bar是一个标准的导航元素,组成:
应用图标,返回导航键导向逻辑父类,应用或者活动标题,持续的导航(包括抽屉)

基本

一般的话除非特别指定,只包含有一个标题

改变标题

标题是由AndroidManifest文件进行管理的,在activity的节点内,使用label标签,另外application节点内也可以设置,设置的值为自动的标题在没有为活动指定标签时自动采用这个标题

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:name="com.codepath.example.simpleapp.FirstActivity"
            android:label="@string/activity_name" >
        </activity>
</application>

可以修改android:label/android:icon 来修改标题和图标,也可以调用getSupportActionBar来获得引用动态修改相关的属性

ActionBar actionBar = getSupportActionBar(); // or getActionBar();
getSupportActionBar().setTitle("My new title"); // set the top title
String title = actionBar.getTitle().toString(); // get the title
actionBar.hide(); // or even hide the actionbar

展示图标

android5.0不鼓励在actionbar展示图标,虽然可以通过代码加上:

getSupportActionBar().setDisplayShowHomeEnabled(true);//是否允许展示logo或者icon
        getSupportActionBar().setLogo(R.mipmap.ic_launcher);
        getSupportActionBar().setDisplayUseLogoEnabled(true);//展示logo而不是图标,logo更为清晰细腻

动作项

当你想向ActionBar添加基本动作时,可以加载在上下文菜单中,如果特别的指定的话他们就会出现在顶部右部。
活动从onCreateOptionsMenu 中提取创造actionbar

public class MainActivity extends AppCompatActivity {
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //记载菜单,加载项 adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
}

我们需要新建一个布局res/menu/menu_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/miCompose"
        android:icon="@drawable/ic_compose"
        app:showAsAction="ifRoom"
        android:title="Compose">
    </item>
    <item
        android:id="@+id/miProfile"
        android:icon="@drawable/ic_profile"
        app:showAsAction="ifRoom|withText"
        android:title="Profile">
    </item>
</menu>

应该记住xmlns:app 命名空间支持了showAction 的操作,ifRoom表明这个选项需要直接作为一个图标出现在actionbar上,如果没有空间的话就会出现动作溢出,withText表明文本将和图标一起出现。

处理点击事件

使用android:onClick="onComposeAction" 然后定义onComposeAction方法。
方法二:重写onOptionsItemSelected() 对于传递的MenuItem项可以使用getItemId方法来识别,然后进行相应的操作。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items
    switch (item.getItemId()) {
        case R.id.miCompose:
            composeMessage();
            return true;
        case R.id.miProfile:
            showProfileView();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

理解ToolBar

在API21开始引进,可以作为ActionBar的替代者,它被认为是一个ViewGroup 可以被放置在布局中的任何位置,而且相对于ActionBar外观更同意定制,具有很好的兼容性,存在于android.support.v7.widget.ToolBar 类中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值