ToolBar 的使用 以及 遇到的问题

ToolBar的使用

首先必须要在Activity的layout的文件中声明这个控件

activity_tool_bar.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Toolbar
        android:id="@+id/current_toolbar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/height_48"
        android:background="@color/theme_red">

    </Toolbar>
</LinearLayout>

然后在Activity中使用setActionBar方法就可以使ToolBar当做ActionBar使用了。

public class ToolBarActivity extends Activity {

      private Toolbar mToolbar;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_tool_bar);
            mToolbar = (Toolbar) this.findViewById(R.id.toolbar);
        setActionBar(mToolbar);
    }
}

别忘了要把Activity的主题设置成NoActionBar的主题否则会报“这个Activity已经有一个Actionbar”的错

   <activity android:name=".ToolBarActivity"
            android:theme="@style/Theme.AppCompat.Light.NoActionBar"></activity>

另一个要注意的问题是,v4支持包,如果你继承的Activity是V4支持包内的Activity,ToolBar也要是v4支持包的,并且要使用setSupportActionBar方法设置Toolbar为Actionbar。
对Toolbar 的操作必须要再set ActionBar之后才能生效

setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Activity.this.finish();
            }
        });

getActionBar为空问题

1.v4支持包的activity 要使用getsupportActionBar方法获取,普通的Activity就使用getActionBar获取
2.看主题是否是有NoActionBar,fullScreen的字样在主题里,这样也不会有actionbar。
3.看style里面的属性

 <item name="windowActionBar">false</item>
  <item name="windowNoTitle">true</item>

如果主题里有这样的设置那么也不会有actionbar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值