在早于Lollipop版本的设备上,使用Material Design的工具栏。
在早于Lollipop版本的设备上,使用Material Design的工具栏。
我正在跟随下一个教程:\n
\n我想要实现类似的设计:\n\n我知道我需要使用两个工具栏。\nvalues/themes.xml\n
\nclass.java\n
import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.widget.Toolbar; public class RegistrarInciTraActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.registrar_inci_traf_layout); //隐藏ActionBar getSupportActionBar().hide(); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); } }
\nlayout\n
\n代码在\"setSupportActionBar(toolbar);\"处报错:\n\n(第一个问题) 这是什么问题? (已解决)\n(第二个问题)\n在我的布局中出现了\n
\n\"?attr/actionBarSize\" 和 \"?attr/colorPrimary\"\n
\n我应该在哪里声明这些属性?\n(第三个问题)\n当我使用两个工具栏时,只显示其中一个,而我希望一个工具栏在另一个内部显示内容。\n\n我应该如何显示这两个工具栏?\n谢谢
(Material design toolbar on devices pre-lollipop)这个问题的出现的原因是,在旧版本的Android设备上,使用Material Design样式的Toolbar时,需要解决一些兼容性问题。其中两个主要问题是获取ActionBar的高度和设置自定义的背景颜色。
解决方法如下:
1. 获取ActionBar的高度:在运行时解析属性"actionBarSize"来获取ActionBar的实际高度。可以参考这个链接:Get ActionBar Size中的答案,来获取ActionBar的高度值。
2. 设置自定义的背景颜色:如果需要给Toolbar设置自定义的背景颜色,可以在布局文件中添加一个适当的颜色调色板,并在"android:background"属性中指定颜色值。同时,在"color.xml"文件中定义"colorPrimary"的值。可以使用Material Palette这个网站来获取不同的颜色值。
这些问题的解决方法可以确保在旧版本的Android设备上,使用Material Design样式的Toolbar时能够正确地显示和运行。
(Material design toolbar on devices pre-lollipop)这个问题的出现的原因是使用了错误的工具栏(toolbar)。问题的解决方法是更正导入错误的工具栏路径(android.widget)为正确的工具栏路径(android.support.v7.widget)。通过更正导入路径,问题应该能够解决。
以下是整理后的文章:
在使用Material设计的工具栏(toolbar)时,有时会遇到在旧版Android设备上无法正常使用的问题。这个问题的原因是使用了错误的工具栏路径(android.widget),而正确的工具栏路径应该是android.support.v7.widget。
解决这个问题的方法非常简单,只需要根据你的IDE给出的提示信息进行修改即可。你需要将导入的工具栏路径从android.widget修改为android.support.v7.widget。通过更正导入路径,你的代码应该能够正常工作了。
下面是一个示例代码,展示了如何使用正确的工具栏路径来解决这个问题:
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.Toolbar; public class MainActivity extends AppCompatActivity { private Toolbar toolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); } }
在上面的代码中,我们首先导入了正确的工具栏路径(android.support.v7.widget.Toolbar)。然后,在onCreate方法中,我们将正确的工具栏(toolbar)与当前的活动(Activity)关联起来。
通过按照上述方法进行修改,你应该能够解决在旧版Android设备上使用Material设计工具栏时遇到的问题。记得在修改代码之前仔细阅读你的IDE给出的提示信息,以确保导入的工具栏路径是正确的。
希望这篇文章能够帮助你解决问题,使你能够顺利使用Material设计工具栏。祝你编写代码愉快!