setSupportActionBar 和 setActionBar 之间的区别

Difference between setSupportActionBar and setActionBar

所以我想在应用程序中将工具栏用作操作栏。我正在尝试在由扩展 class 的 activity 托管的片段中使用 setSupportActionBar() 方法,扩展 AppCompatActivity。由于某种原因,我根本无法做到 getActivity().setSupportActionBar(),我只能做到 getActivity().setActionBar()。问题在于 setSupportActionBar() 接受 android.support.v7.widget.Toolbar,而 setActionBar() 只接受 android.widget.Toolbar。这导致我的应用仅限于使用 Lollipop 的设备。

我发现的一个附带问题是,当我尝试使用

将工具栏的主题更改为深色时
app:theme="@style/ThemeOverlay.AppCompat.Dark"

没用。

getActivity() 有 class Activity,即使你的 Activity 是子 class AppCompatActivity 的一种。你必须施放 getActivity(),调用

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

对于主题问题,您应该 post 详细说明您放置什么风格定义的位置,或者更确切地说,将其放在一个单独的问题中。