【问题标题】:Do not request Window.FEATURE_SUPPORT_ACTION_BAR不要请求 Window.FEATURE_SUPPORT_ACTION_BAR
【发布时间】:2017-01-11 08:50:09
【问题描述】:

我有一个 LoginActivityclass(TabActivity),它有以下代码来覆盖整个移动屏幕

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        FacebookSdk.sdkInitialize(getApplic

现在我想使用带有工具栏的 Intent 转到另一个 MainActivityclass(AppCompatActivity)。它的代码是-

@Override
protected void onCreate(Bundle  savedInstanceState) {
     super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

XML-

<android.support.design.widget.AppBarLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        app:contentInsetRight="@dimen/fab_margin"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

当我没有使用 Intent 打开 MainClass 时它工作正常,但我想打开 MainActivityClass 时出现错误 -

这个 Activity 已经有一个由窗口装饰提供的操作栏。不要在您的主题中请求Window.FEATURE_SUPPORT_ACTION_BAR 并将windowActionBar 设置为false 以使用工具栏来代替......

【问题讨论】:

  • 我想从第一个使用 Intent 打开另一个活动类。
  • 你必须把你的主题代码..也是清单文件......这个错误是你的主题错误。
  • 发布您的 Manifest 文件和您使用 Toolbar 的整个 xml 代码。
  • @NehaSharma 可能重复的问题stackoverflow.com/questions/26515058/…
  • @NehaSharma 用上面的代码编辑你的问题。不要把你的代码放在评论部分,没人会读到。

标签: android


【解决方案1】:

试试这个:

在清单中

// the activity where you want to show `toolbar`
    <activity android:name=".YourActivity"  
     android:theme="@style/AppTheme.NoActionBar"><!-- ADD THIS LINE -->

在styles.xml中

<style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
</style>

将此android:theme="@style/Theme.AppCompat.Light" 添加到清单文件中的应用程序标签

<application
        android:theme="@style/Theme.AppCompat.Light"
</application>

【讨论】:

  • 它也适用于意图...意图将启动您的活动..因此清单将始终被调用
  • yaah.. 这个答案将错误更改为 - 您需要在此活动中使用 Theme.AppCompat 主题(或后代)
【解决方案2】:

这个错误是由许多错误引起的 我在下面列出了一些情况:

1.) 如果您尚未在布局中创建工具栏

2.) 如果您正在使用

android:theme="@style/AppTheme.NoActionBar"

主题并尝试获取Actionbar。

3) 如果你还没有

扩展 AppCompatActivity

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 2012-07-29
    • 2015-08-08
    • 2018-02-23
    相关资源
    最近更新 更多