首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >setSupportActionBar工具栏无法应用于(android.widget.Toolbar)错误

setSupportActionBar工具栏无法应用于(android.widget.Toolbar)错误
EN

Stack Overflow用户
提问于 2015-03-13 14:14:24
回答 13查看 170.6K关注 0票数 53

我一直在寻找答案,我已经尝试了许多可能的解决方案,但似乎都没有奏效。

我正在尝试设置一个跟随this tutorial的材质操作栏。

下面是我的代码:

tool_bar.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/ColorPrimary"
    android:elevation="4dp">

</android.support.v7.widget.Toolbar>

activity.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF">
    <!-- The main content view -->
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <include
            android:id="@+id/app_bar"
            layout="@layout/tool_bar" />
    </RelativeLayout>
    <!-- Navigation Drawer -->
    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="220dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:background="#1C1C1C"
        android:divider="@android:color/darker_gray"
        android:dividerHeight="1dp" />

</android.support.v4.widget.DrawerLayout>

最后是我的activity.java:

代码语言:javascript
复制
import android.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toolbar;


public class rutaActivity extends ActionBarActivity {

private Toolbar toolbar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ruta);

        getSupportActionBar().hide();//Ocultar ActivityBar anterior

        toolbar = (Toolbar) findViewById(R.id.app_bar);
        setSupportActionBar(toolbar); //HERE'S THE PROBLEM !!!!

错误:

ActionBarActivity中的

setSupporActionBar (android.support.v7.widget.Toolbar)无法应用于(android.widget.Toolbar)

我该如何解决这个问题呢?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2015-03-13 14:29:05

Activity.java中导入android.support.v7.widget.Toolbar而不是android.widget.Toolbar

代码语言:javascript
复制
import android.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v7.widget.Toolbar;


public class rutaActivity extends AppCompactActivity {

private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ruta);

    getSupportActionBar().hide();//Ocultar ActivityBar anterior

    toolbar = (Toolbar) findViewById(R.id.app_bar);
    setSupportActionBar(toolbar); //NO PROBLEM !!!!

更新:

如果使用的是androidx,请替换

代码语言:javascript
复制
import android.support.v7.widget.Toolbar;
import android.support.v7.app.AppCompatActivity;

使用较新的导入

代码语言:javascript
复制
import androidx.appcompat.widget.Toolbar;
import androidx.appcompat.app.AppCompatActivity;
票数 164
EN

Stack Overflow用户

发布于 2015-10-21 00:37:54

在使用工具栏时,你应该扩展AppCompatActivity和

代码语言:javascript
复制
import android.support.v7.widget.Toolbar 
票数 23
EN

Stack Overflow用户

发布于 2016-09-03 09:26:43

对于添加支持材质设计的ToolBar,official documentation directions可能是最好的选择。

添加v7 appcompat support library.

  • Make
  1. activity extend AppCompatActivity

公共类MyActivity扩展了AppCompatActivity { // ... }

  • 在清单中声明NoActionBar

  • 将工具栏添加到活动的xml布局中。

工具栏“@+id/my_android:id=”android:theme="@style/ThemeOverlay.AppCompat.ActionBar“... />

  • setSupportActionBar in the activity's onCreate

@Override protected void onCreate( savedInstanceState) { super.onCreate(savedInstanceState);setContentView(R.layout.activity_my);Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);setSupportActionBar(myToolbar);}

注意:您必须在活动中导入以下内容。

代码语言:javascript
复制
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29025961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档