(1)简介
Toolbar 是 Android 5.0 推出的一个 Material Design 风格的导航控件 ,用来取代之前的 Actionbar 。与 Actionbar 相比,Toolbar 明显要灵活的多。它不像 Actionbar 一样,一定要固定在Activity的顶部,而是可以放到界面的任意位置。
(2)修改主题
当我们新建一个工程时,我们发现默认是有导航栏的, 如图:
我们发现系统自带的是一个actionBar
在\src\main\res\values\themes.xml中如下:
<style name="Theme.Mybutton" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
常用属性详解如下:
android:id="@+id/tb"
android:background="#ffff00"
app:navigationIcon="@drawable/ic_baseline_arrow_back_24" //导航栏图标,即那个箭头
app:title="标题"
app:titleTextColor="#ff0000"
app:titleMarginStart="90dp"
app:subtitle="子标题" //子标题
app:subtitleTextColor="#00ffff"
app:logo="@mipmap/ic_launcher" //设置logo
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"/>
下面设计一个简单的toolbar工程
- 菜单布局如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/tb"
android:background="#ffff00"
app:navigationIcon="@drawable/ic_baseline_arrow_back_24"
app:title="标题"
app:titleTextColor="#ff0000"
app:titleMarginStart="90dp"
app:subtitle="子标题"
app:subtitleTextColor="#00ffff"
app:logo="@mipmap/ic_launcher"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"/>
</LinearLayout>
修改themes.xml,去掉默认的actionBar,改为NoActionBar,如下:
<style name="Theme.Mybutton" parent="Theme.MaterialComponents.DayNight.NoActionBar">
- setNavigationOnClickListener,设置返回键点击事件
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.tb);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("wqq", "onClick: toolbar被点击了");
}
});
}
}
最终效果如下: