it-swarm.asia

setSupportActionBar araç çubuğu (Android.widget.Toolbar) hatasına uygulanamaz

Cevap aradım ve birçok olası çözümü denedim, fakat hiçbir şey işe yaramadı.

Bu eğitimde 'i takip ederek bir Malzeme Eylem Çubuğu kurmaya çalışıyorum.

İşte kodum:

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>

Ve sonunda faaliyetlerim.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 !!!!

Hata: 

actionBarActivity uygulamasındaki setSupporActionBar (Android.support.v7.widget.Toolbar) (Android.widget.Toolbar) uygulamasına uygulanamaz

Bunu nasıl düzeltebilirim?

42
HGRC

Activity.Java adresinizde Android.support.v7.widget.Toolbar yerine Android.widget.Toolbar içeri aktarın:

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 !!!!
116
Mohit Singh

Araç çubuğunu kullanırken, AppCompatActivity'yi genişletmeniz ve Android.support.v7.widget.Toolbar'ı içe aktarmanız gerekir. 

21
Kirti Chaturvedi

Malzeme Tasarımını destekleyen bir Araç Çubuğu eklemek için resmi dokümantasyon talimatları muhtemelen takip edilmesi en iyisidir.

  1. v7 appcompat destek kitaplığını ekleyin.
  2. Etkinliğinizin AppCompatActivity değerini uzatmasını sağlayın.

    public class MyActivity extends AppCompatActivity {
      // ...
    }
    
  3. Manifest'te NoActionBar değerini bildirin.

    <application
        Android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
    
  4. Etkinliğinizin xml düzenine bir araç çubuğu ekleyin.

    <Android.support.v7.widget.Toolbar
       Android:id="@+id/my_toolbar"
       Android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
       ...
       />
    
  5. Faaliyetin setSupportActionBar adresindeki onCreate arayın.

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

Not: Aktivitede aşağıdakileri içe aktarmanız gerekecektir.

import Android.support.v7.app.AppCompatActivity;
import Android.support.v7.widget.Toolbar;
15
Suragch

Manifest bildiriminizin Android: theme = "@ style/AppTheme.NoActionBar" etiketini içerdiğini ve aşağıdaki gibi olduğunu onaylayın:

<activity
    Android:name=".PointsScreen"
    Android:theme="@style/AppTheme.NoActionBar">
</activity>
2
mathias.horn

3'ün üstündeki Android sürümü için:  

import androidx.appcompat.widget.Toolbar; 

Android sürümü için feryat 3:  

import Android.widget.Toolbar;

2
Messou

Sadece değiştir

import Android.widget.Toolbar;

Için

import Android.support.v7.widget.Toolbar;
1
Samer Kasseb

İçe aktarma Android.support.v7.widget.Toolbar'ı içe aktarma listesine eklemek bu sorunu çözer.

Ardından araç çubuğu pencere aracı düzen dosyasını ekleyin: 

<Android.support.v7.widget.Toolbar
    Android:id="@+id/list_toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:background="?attr/colorPrimary"
    Android:minHeight="?attr/actionBarSize"
    Android:theme="?attr/actionBarTheme"
    />

Java kodunun onCreate yönteminde

//call to

Tootbar araç çubuğu = findViewById (R.id.toolbar); SetSupportActionBar (araç çubuğu);

Kaynak: https://developer.Android.com/training/appbar/up-action

1
trustidkid

Android 3.0'ın Studio 3.0+ sürümüne eklenmesiyle Araç Çubuğu uyumluluğu şu anda erişilebilir durumda olan yeni bir kütüphanede

import androidx.appcompat.widget.Toolbar
0
Fa-C-Shus

android.support.v7.widget.Toolbar; .__ 'ı içe aktarın.

0
Vickie Kangare

Daha önce bu kodu kullanıyordum:

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

ve AppCompatActivity de genişledi ama aynı hatayı alıyordum .. .. Yani Toolbar class kullanmak yerine, aşağıdaki sınıfı aldım ve bu benim için çalıştı:

Android.support.v7.widget.Toolbar
0
amit pandya

Bendede aynı sorun var. Logcat benim diyor

Java.lang.IllegalStateException: Bu aktivitenin zaten bir hareketi var. pencere dekoru tarafından sağlanan bar

Zaten bir işlem çubuğum var, bu yüzden setSupportActionBar(toolbar); işlevini kullandığımda uygulamam bu çatışma için bir hata alıyor. Bu sorunu çözmek için, uygulamanızın tema stili kaynak dosyasına NoActionBar ekleyin.

Bunu değiştir 

<style name="ParentMaterialTheme" parent="Theme.AppCompat.Light">

Buna 

<style name="ParentMaterialTheme" parent="Theme.AppCompat.Light.NoActionBar">

0

sınıfı, tanınmayan setSuppertActionBar sorununu çözmek için AppCompatActivity düzeyini genişletmelidir

0
Mosayeb Masoumi

ToolBar'ın adı kullanılarak kolayca değiştirilebilir

Android:label="My Activity"

manifest Dosyanızda. Sadece Manifest'ten geçiyorum ve buldum

Android:label 

Belirli bir etkinliğe göre değişmeye yardımcı olur, bir deneyin.

0
Rushabh Gedam