Android setSupportActionBar和setActionBar之间的差异

Android setSupportActionBar和setActionBar之间的差异,android,android-actionbar,toolbar,Android,Android Actionbar,Toolbar,因此,我尝试将工具栏用作应用程序中的操作栏。我试图在一个片段中使用setSupportActionBar()方法,该片段由一个扩展了AppCompatActivity的类的活动托管。由于某些原因,我根本无法执行getActivity().setSupportActionBar(),我只能执行getActivity().setActionBar()。问题是setSupportActionBar()接受android.support.v7.widget.Toolbar其中setActionBar()

因此,我尝试将工具栏用作应用程序中的操作栏。我试图在一个片段中使用
setSupportActionBar()
方法,该片段由一个扩展了
AppCompatActivity
的类的活动托管。由于某些原因,我根本无法执行
getActivity().setSupportActionBar()
,我只能执行
getActivity().setActionBar()
。问题是
setSupportActionBar()
接受
android.support.v7.widget.Toolbar
其中
setActionBar()
只接受android.widget.Toolbar。这导致我的应用程序仅限于使用棒棒糖的设备

我发现的一个附带问题是,当我试图将工具栏的主题更改为黑色时

app:theme="@style/ThemeOverlay.AppCompat.Dark"
它不起作用。

getActivity()
具有类
Activity
,即使您的
Activity
是一种子类
AppCompatiActivity
。您必须强制转换
getActivity()
,调用

((AppCompatActivity)getActivity()).setSupportActionBar()

对于主题问题,您应该将详细信息张贴在您已放置了什么样式定义的位置,或者将其放在单独的问题中。

谢谢,主题问题是通过能够使用android.support.v7.widget.Toolbar而不是android.widget.Toolbar来解决的。