Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
support.v7.widgets和android.widgets工具栏的区别,片段_Android_Android Support Library_Android Toolbar - Fatal编程技术网

support.v7.widgets和android.widgets工具栏的区别,片段

support.v7.widgets和android.widgets工具栏的区别,片段,android,android-support-library,android-toolbar,Android,Android Support Library,Android Toolbar,我正在创建一个新的应用程序,将不得不处理ActionBar。我知道我必须扩展AppCompatActivity,因为ActionBarActivity已被弃用,但是我仍然不明白为什么我必须使用support.v7.widget工具栏而不是android.widget工具栏,即使我使用的是最新的API 多谢各位 编辑1: 我现在了解到,support.v7.widgets的存在是为了使使用旧API的设备能够理解新版本中添加的新功能,并以自己的方式模拟它们。对吗 如果这是正确的,并且我不想有任何向后

我正在创建一个新的应用程序,将不得不处理ActionBar。我知道我必须扩展AppCompatActivity,因为ActionBarActivity已被弃用,但是我仍然不明白为什么我必须使用support.v7.widget工具栏而不是android.widget工具栏,即使我使用的是最新的API

多谢各位

编辑1:

我现在了解到,support.v7.widgets的存在是为了使使用旧API的设备能够理解新版本中添加的新功能,并以自己的方式模拟它们。对吗

如果这是正确的,并且我不想有任何向后的兼容性,这是否意味着我可以前进并使用android.widget工具栏

同样使用android.widget片段,很遗憾,我无法将其添加到ViewPager。为什么呢?为什么它强迫我使用一个旧版本,它已经被扩展以模拟组件的新实现的行为

我想我只是在那些“支持”库中迷失了方向。有人能简要(或不)解释一下所有这些吗?为什么支持库中有一些东西没有包含在新版本的API中或没有更新


谢谢你

首先,你提出了一个好问题,Android将在不同的API级别上不断添加高级功能,但这些功能是从哪个API级别添加的

<强>例如:< /强>认为Android片段功能被添加在API级别11中,这意味着它将适用于API级别11和以上,但是您的应用程序需要API级别10设备,在那个时候它也不会工作。由于这个原因,android开发支持库覆盖了广泛的android设备(支持低级API)来实现这些功能

Android始终建议开发人员使用支持库进行开发,以获取更多信息检查
  • Support.V7.widgets和widgets.android都是不同的库
  • 小部件使用设计库
  • 工具栏实际上不是一个actionbar,我们正在手动实现一个 带有支持库的ActionBar
  • 还有更多新的内置属性,如可观察的滚动活动和更多的材料设计

  • 为什么我们不使用默认的actionbar

    因为ActionBarActivity是无润滑的。将旧的actionbar与我们最新的sdk actionbar进行比较,它看起来很不错

    .
    setSupportActionBar(工具栏)

  • 设置对工具栏的支持后,为工具栏提供actionbar属性,就像我们可以通过
    getSupportActionBar().hide()隐藏工具栏一样