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