setSupportActionBar 和 setActionBar 之间的区别

kob*_*obi 4 android toolbar android-actionbar

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

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

app:theme="@style/ThemeOverlay.AppCompat.Dark"
Run Code Online (Sandbox Code Playgroud)

它不起作用。

Chr*_*ian 6

getActivity()有类Activity,即使你Activity是子类的一种AppCompatActivity。你必须投射getActivity(),打电话

((AppCompatActivity)getActivity()).setSupportActionBar()
Run Code Online (Sandbox Code Playgroud)

对于主题问题,您应该在放置样式定义的位置发布详细信息,或者将其放在单独的问题中。