我一直在寻找答案,我已经尝试了许多可能的解决方案,但似乎都没有奏效。
我正在尝试设置一个跟随this tutorial的材质操作栏。
下面是我的代码:
tool_bar.xml:
<?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:
<?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:
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)
我该如何解决这个问题呢?
发布于 2015-03-13 14:29:05
在Activity.java
中导入android.support.v7.widget.Toolbar
而不是android.widget.Toolbar
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,请替换
import android.support.v7.widget.Toolbar;
import android.support.v7.app.AppCompatActivity;
使用较新的导入
import androidx.appcompat.widget.Toolbar;
import androidx.appcompat.app.AppCompatActivity;
发布于 2015-10-21 00:37:54
在使用工具栏时,你应该扩展AppCompatActivity和
import android.support.v7.widget.Toolbar
发布于 2016-09-03 09:26:43
对于添加支持材质设计的ToolBar,official documentation directions可能是最好的选择。
添加v7 appcompat support library.
AppCompatActivity
。公共类MyActivity扩展了AppCompatActivity { // ... }
NoActionBar
。工具栏“@+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);}
注意:您必须在活动中导入以下内容。
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
https://stackoverflow.com/questions/29025961
复制相似问题