其他分享
首页 > 其他分享> > android-使用预先存在的操作栏样式来设置工具栏样式

android-使用预先存在的操作栏样式来设置工具栏样式

作者:互联网

我正在将应用程序从AppCompat-v20迁移到AppCompat-v21.作为该过程的一部分,我试图离开操作栏,而将其替换为工具栏,以便我们可以利用所有新的Material design优点.

以前,我们已经以一种样式定义了有关AB的displayOptions的所有信息,然后我们将该样式设置为Activity主题中的actionBarStyle.但是,既然我正在扩展Theme.AppCompat.NoActionBar,这些属性将不再受尊重,这很有意义,因为我的主题扩展了Theme.AppCompat.NoActionBar.同时,我仍然希望将这些displayOptions应用于之前的相同位置(即,我希望能够指定是要使用徽标还是将首页显示为主题的一部分).

我知道我可以通过将displayOptions放在主题上并自己解析来做到这一点,但我想知道AppCompat中是否有对工具栏的支持,以自动处理此逻辑.

解决方法:

使用工具栏,您要记住的是,它基本上只是一个视图组,因此与使用ActionBar相比,可以更轻松自定义它.话虽如此,您可以使用样式来更改工具栏的外观,但是有一些方法可以设置标题/徽标/导航等内容.

这是样式化工具栏的示例:

<android.support.v7.widget.Toolbar  
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />

如果您使用的是ActionBarActivities和Fragments,则可以调用以下命令让Android知道将您的工具栏用作supportActionBar.这意味着您对getSupportActionBar()的所有调用将仍然有效.

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);

新的材料设计指南已开始摆脱使用徽标的作用,但是如果您坚持设置,则可以这样:

toolbar.setLogo();

您的问题有点含糊,因此有关更多信息,请参见克里斯·巴内斯(Chris Banes)和尼克·巴彻(Nick Butcher)的this post,然后是the documentation.

标签:material-design,android-appcompat,android
来源: https://codeday.me/bug/20191029/1956685.html