📅  最后修改于: 2023-12-03 15:13:22.269000             🧑  作者: Mango
android.support.v7.widget.Toolbar
是一个可替代传统的ActionBar的控件,它提供了更大的自定义灵活性和更多的功能。
dependencies {
...
implementation 'com.android.support:appcompat-v7:28.0.0'
}
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:titleTextColor="@color/white"
android:elevation="4dp" />
public class MainActivity extends AppCompatActivity {
private Toolbar mToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 找到Toolbar控件
mToolbar = findViewById(R.id.my_toolbar);
// 设置Toolbar为ActionBar
setSupportActionBar(mToolbar);
// 显示返回箭头
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
// 监听返回箭头的点击事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
可以通过设置样式和主题来自定义Toolbar的外观和行为。
<style name="MyToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
<item name="android:background">@color/colorPrimary</item>
<item name="android:titleTextColor">@color/white</item>
<item name="titleTextAppearance">@style/MyTitleTextAppearance</item>
</style>
<style name="MyTitleTextAppearance">
<item name="android:textColor">@color/white</item>
<item name="android:textStyle">bold</item>
</style>
在ToolBar控件中设置style
属性即可。
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
style="@style/MyToolbarStyle" />
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="toolbarStyle">@style/MyToolbarStyle</item>
</style>
在App的theme中设置toolbarStyle
属性即可。
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
...
</application>