HGR*_*GRC 48 android toolbar android-actionbar material-design
我一直在寻找答案,我已经尝试了很多可能的解决方案,但似乎没有什么工作..
我正在尝试按照本教程设置Material Action Bar .
这是我的代码:
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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
最后我的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 !!!!
Run Code Online (Sandbox Code Playgroud)
错误:
ActionBarActivity中的setSupporActionBar(android.support.v7.widget.Toolbar)无法应用于(android.widget.Toolbar)
我怎样才能解决这个问题?
Moh*_*ngh 137
在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 !!!!
Run Code Online (Sandbox Code Playgroud)
小智 22
在使用工具栏时,您应该扩展AppCompatActivity,然后导入android.support.v7.widget.Toolbar
Sur*_*gch 15
要添加支持Material Design的ToolBar,官方文档说明可能是最好的.
让您的活动延伸AppCompatActivity
.
public class MyActivity extends AppCompatActivity {
// ...
}
Run Code Online (Sandbox Code Playgroud)NoActionBar
在清单中声明.
<application
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
/>
Run Code Online (Sandbox Code Playgroud)在活动的xml布局中添加工具栏.
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
...
/>
Run Code Online (Sandbox Code Playgroud)打电话setSupportActionBar
给活动onCreate
.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
}
Run Code Online (Sandbox Code Playgroud)注意:您必须在活动中导入以下内容.
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
Run Code Online (Sandbox Code Playgroud)
小智 5
通过在 Studio 3.0+ 中添加 androidx,工具栏兼容性现在在一个新库中,可以像这样访问
import androidx.appcompat.widget.Toolbar
Run Code Online (Sandbox Code Playgroud)
对于高于3的Android版本:
import androidx.appcompat.widget.Toolbar;
Run Code Online (Sandbox Code Playgroud)
对于低于3的Android版本:
import android.widget.Toolbar;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
123599 次 |
最近记录: |