I’ve been looking for an answer and I’ve tried many possible solutions, but nothing seems to work..
I’m trying to setup a Material Action Bar following this tutorial.
Here’s my code:
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>
And finally my 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 !!!!
Error:
setSupporActionBar (android.support.v7.widget.Toolbar) in ActionBarActivity cannot be applied to (android.widget.Toolbar)
How can I fix this?
Zoe♦
27.1k21 gold badges119 silver badges148 bronze badges
asked Mar 13, 2015 at 6:14
0
In your Activity.java
import android.support.v7.widget.Toolbar
instead of 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 !!!!
Update:
If you are using androidx, replace
import android.support.v7.widget.Toolbar;
import android.support.v7.app.AppCompatActivity;
with newer imports
import androidx.appcompat.widget.Toolbar;
import androidx.appcompat.app.AppCompatActivity;
answered Mar 13, 2015 at 6:29
MohitMohit
2,6081 gold badge22 silver badges21 bronze badges
2
In using toolbar you should extends AppCompatActivity and
import android.support.v7.widget.Toolbar
Zoe♦
27.1k21 gold badges119 silver badges148 bronze badges
answered Oct 20, 2015 at 16:37
1
For adding a ToolBar that supports Material Design, the official documentation directions are probably the best to follow.
- Add the v7 appcompat support library.
-
Make your activity extend
AppCompatActivity
.public class MyActivity extends AppCompatActivity { // ... }
-
Declare
NoActionBar
in the Manifest.<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
-
Add a toolbar to your activity’s xml layout.
<android.support.v7.widget.Toolbar android:id="@+id/my_toolbar" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" ... />
-
Call
setSupportActionBar
in the activity’sonCreate
.@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar); }
Note: You will have to import the following in the activity.
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
answered Sep 3, 2016 at 1:26
SuragchSuragch
485k316 gold badges1366 silver badges1396 bronze badges
2
For Android version above 3:
import androidx.appcompat.widget.Toolbar;
For Android version below 3:
import android.widget.Toolbar;
akelec
3,7973 gold badges41 silver badges39 bronze badges
answered Jan 6, 2019 at 16:30
M E S A B OM E S A B O
7931 gold badge11 silver badges15 bronze badges
With the addition of androidx in Studio 3.0+ the Toolbar compatibility is now in a new library, accessible like this
import androidx.appcompat.widget.Toolbar
answered Sep 16, 2018 at 17:20
Fa-C-ShusFa-C-Shus
511 silver badge2 bronze badges
Certify that your Manifest declaration includes android:theme=»@style/AppTheme.NoActionBar» tag, like the following:
<activity
android:name=".PointsScreen"
android:theme="@style/AppTheme.NoActionBar">
</activity>
answered Nov 4, 2017 at 18:21
mathias.hornmathias.horn
2411 gold badge8 silver badges12 bronze badges
0
Adding import android.support.v7.widget.Toolbar to the import list resolve this issue.
Then add the toolbar widget layout file:
<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"
/>
In onCreate method of java code
//call to
Tootbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Source: https://developer.android.com/training/appbar/up-action
answered Sep 7, 2018 at 20:37
trustidkidtrustidkid
5774 silver badges6 bronze badges
2
class must be extend of AppCompatActivity to resolve the problem of setSuppertActionBar that is not recognizable
answered Feb 16, 2019 at 6:13
1
Just change
import android.widget.Toolbar;
To
import android.support.v7.widget.Toolbar;
Zoe♦
27.1k21 gold badges119 silver badges148 bronze badges
answered May 10, 2019 at 15:51
ToolBar’s name can easily be changed using
android:label="My Activity"
in your Manifest File.
I just going through Manifest & found
android:label
Helps to change according to the specific activity, Hope you’ll give it a try
answered Jun 14, 2019 at 4:23
Rushabh GedamRushabh Gedam
3101 gold badge4 silver badges11 bronze badges
1
I was using previously this code:
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
and extended AppCompatActivity also but I was getting the same error.
So in place of using Toolbar class, I have imported the below class and it worked for me:
android.support.v7.widget.Toolbar
answered Jun 23, 2018 at 10:17
amit pandyaamit pandya
1,39413 silver badges22 bronze badges
import android.support.v7.widget.Toolbar;
import it into your java class
Zoe♦
27.1k21 gold badges119 silver badges148 bronze badges
answered Jun 21, 2018 at 8:08
In You MainActivity.java import android .support.v7.widget.Toolbar insert of java program
answered May 11, 2018 at 13:05
ManideepManideep
3533 silver badges13 bronze badges
I’ve been looking for an answer and I’ve tried many possible solutions, but nothing seems to work..
I’m trying to setup a Material Action Bar following this tutorial.
Here’s my code:
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>
And finally my 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 !!!!
Error:
setSupporActionBar (android.support.v7.widget.Toolbar) in ActionBarActivity cannot be applied to (android.widget.Toolbar)
How can I fix this?
This question is related to
android
android-actionbar
material-design
toolbar
The answer is
In your Activity.java
import android.support.v7.widget.Toolbar
instead of 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 !!!!
Update:
If you are using androidx, replace
import android.support.v7.widget.Toolbar;
import android.support.v7.app.AppCompatActivity;
with newer imports
import androidx.appcompat.widget.Toolbar;
import androidx.appcompat.app.AppCompatActivity;
In using toolbar you should extends AppCompatActivity and
import android.support.v7.widget.Toolbar
For adding a ToolBar that supports Material Design, the official documentation directions are probably the best to follow.
- Add the v7 appcompat support library.
-
Make your activity extend
AppCompatActivity
.public class MyActivity extends AppCompatActivity { // ... }
-
Declare
NoActionBar
in the Manifest.<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
-
Add a toolbar to your activity’s xml layout.
<android.support.v7.widget.Toolbar android:id="@+id/my_toolbar" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" ... />
-
Call
setSupportActionBar
in the activity’sonCreate
.@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar); }
Note: You will have to import the following in the activity.
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
For Android version above 3:
import androidx.appcompat.widget.Toolbar;
For Android version below 3:
import android.widget.Toolbar;
With the addition of androidx in Studio 3.0+ the Toolbar compatibility is now in a new library, accessible like this
import androidx.appcompat.widget.Toolbar
Certify that your Manifest declaration includes android:theme=»@style/AppTheme.NoActionBar» tag, like the following:
<activity
android:name=".PointsScreen"
android:theme="@style/AppTheme.NoActionBar">
</activity>
Adding import android.support.v7.widget.Toolbar to the import list resolve this issue.
Then add the toolbar widget layout file:
<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"
/>
In onCreate method of java code
//call to
Tootbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Source: https://developer.android.com/training/appbar/up-action
class must be extend of AppCompatActivity to resolve the problem of setSuppertActionBar that is not recognizable
Just change
import android.widget.Toolbar;
To
import android.support.v7.widget.Toolbar;
I was using previously this code:
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
and extended AppCompatActivity also but I was getting the same error.
So in place of using Toolbar class, I have imported the below class and it worked for me:
android.support.v7.widget.Toolbar
ToolBar’s name can easily be changed using
android:label="My Activity"
in your Manifest File.
I just going through Manifest & found
android:label
Helps to change according to the specific activity, Hope you’ll give it a try
import android.support.v7.widget.Toolbar;
import it into your java class
In You MainActivity.java import android .support.v7.widget.Toolbar insert of java program
Questions with android tag:
• Under what circumstances can I call findViewById with an Options Menu / Action Bar item?
• How to implement a simple scenario the OO way
• My eclipse won’t open, i download the bundle pack it keeps saying error log
• getting » (1) no such column: _id10 » error
• java doesn’t run if structure inside of onclick listener
• Cannot retrieve string(s) from preferences (settings)
• strange error in my Animation Drawable
• how to put image in a bundle and pass it to another activity
• FragmentActivity to Fragment
• A failure occurred while executing com.android.build.gradle.internal.tasks
• Why am I seeing net::ERR_CLEARTEXT_NOT_PERMITTED errors after upgrading to Cordova Android 8?
• «Failed to install the following Android SDK packages as some licences have not been accepted» error
• Android Gradle 5.0 Update:Cause: org.jetbrains.plugins.gradle.tooling.util
• No Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator
• WebView showing ERR_CLEARTEXT_NOT_PERMITTED although site is HTTPS
• WARNING: API ‘variant.getJavaCompile()’ is obsolete and has been replaced with ‘variant.getJavaCompileProvider()’
• GoogleMaps API KEY for testing
• Can I use library that used android support with Androidx projects.
• How to allow all Network connection types HTTP and HTTPS in Android (9) Pie?
• Android Material and appcompat Manifest merger failed
• Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0
• How to format DateTime in Flutter , How to get current time in flutter?
• How to change package name in flutter?
• Failed to resolve: com.android.support:appcompat-v7:28.0
• What is AndroidX?
• Unable to resolve dependency for ‘:app@debug/compileClasspath’: Could not resolve
• FirebaseInstanceIdService is deprecated
• installation app blocked by play protect
• Handling back button in Android Navigation Component
• Android design support library for API 28 (P) not working
• Failed to resolve: com.google.firebase:firebase-core:16.0.1
• com.google.android.gms:play-services-measurement-base is being requested by various other libraries
• java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/ProtocolVersion
• Install Android App Bundle on device
• Conflict with dependency ‘com.android.support:support-annotations’ in project ‘:app’. Resolved versions for app (26.1.0) and test app (27.1.1) differ.
• How to develop Android app completely using python?
• Invoke-customs are only supported starting with android 0 —min-api 26
• Flutter.io Android License Status Unknown
• How to open Android Device Monitor in latest Android Studio 3.1
• Default interface methods are only supported starting with Android N
• How can I change the app display name build with Flutter?
• Error:(9, 5) error: resource android:attr/dialogCornerRadius not found
• error: resource android:attr/fontVariationSettings not found
• Flutter does not find android sdk
• Error — Android resource linking failed (AAPT2 27.0.3 Daemon #0)
• Error : Program type already present: android.support.design.widget.CoordinatorLayout$Behavior
• flutter run: No connected devices
• Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6
• Still getting warning : Configuration ‘compile’ is obsolete and has been replaced with ‘implementation’
• PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT (in windows 10)
Questions with android-actionbar tag:
• Under what circumstances can I call findViewById with an Options Menu / Action Bar item?
• Failed to load AppCompat ActionBar with unknown error in android studio
• Android transparent status bar and actionbar
• ActionBarActivity is deprecated
• Manage toolbar’s navigation and back button from fragment in android
• setSupportActionBar toolbar cannot be applied to (android.widget.Toolbar) error
• How to use SearchView in Toolbar Android
• How to get Toolbar from fragment?
• Display Back Arrow on Toolbar
• Remove title in Toolbar in appcompat-v7
• Change Toolbar color in Appcompat 21
• This Activity already has an action bar supplied by the window decor
• How to implement DrawerArrowToggle from Android appcompat v7 21 library
• How to change option menu icon in the action bar?
• Android Activity without ActionBar
• Action bar navigation modes are deprecated in Android L
• Implementing SearchView in action bar
• Full Screen Theme for AppCompat
• How to change the background color of Action Bar’s Option Menu in Android 4.2?
• Android: how to hide ActionBar on certain activities
• How to add Action bar options menu in Android Fragments
• How to align title at center of ActionBar in default theme(Theme.Holo.Light)
• How to set custom ActionBar color / style?
• ActionBarCompat: java.lang.IllegalStateException: You need to use a Theme.AppCompat
• Can’t Find Theme.AppCompat.Light for New Android ActionBar Support
• Actionbar notification count icon (badge) like Google has
• How to add button in ActionBar(Android)?
• Display back button on action bar
• Setting Custom ActionBar Title from Fragment
• How can I implement custom Action Bar with custom buttons in Android?
• Remove icon/logo from action bar on android
• How do I change the android actionbar title and icon
• Remove android default action bar
• How to display custom view in ActionBar?
• How to center align the ActionBar title in Android?
• How to get the ActionBar height?
• Remove shadow below actionbar
• Add back button to action bar
• How to display both icon and title of action inside ActionBar?
• How do I hide a menu item in the actionbar?
• Padding between ActionBar’s home icon and title
• How to customize the back button on ActionBar
• How to Set a Custom Font in the ActionBar Title?
• How to hide action bar before activity is created, and then show it again?
• How to disable action bar permanently
• How do I change the background color of the ActionBar of an ActionBarActivity using XML?
• How do you remove the title text from the Android ActionBar?
• What is the size of ActionBar in pixels?
• getActionBar() returns null
• Android: How to change the ActionBar «Home» Icon to be something other than the app icon?
Questions with material-design tag:
• Flutter: Setting the height of the AppBar
• How to use the new Material Design Icon themes: Outlined, Rounded, Two-Tone and Sharp?
• Selected tab’s color in Bottom Navigation View
• Material UI and Grid system
• How to set a ripple effect on textview or imageview on Android?
• How can a divider line be added in an Android RecyclerView?
• How to show Snackbar when Activity starts?
• How to change the new TabLayout indicator color and height
• Android Design Support Library expandable Floating Action Button(FAB) menu
• Android Support Design TabLayout: Gravity Center and Mode Scrollable
• How get data from material-ui TextField, DropDownMenu components?
• Toolbar overlapping below status bar
• How to change Toolbar Navigation and Overflow Menu icons (appcompat v7)?
• setSupportActionBar toolbar cannot be applied to (android.widget.Toolbar) error
• Toolbar Navigation Hamburger Icon missing
• CardView not showing Shadow in Android L
• Creating a SearchView that looks like the material design guidelines
• Adjust icon size of Floating action button (fab)
• Android «elevation» not showing a shadow
• Choosing bootstrap vs material design
• How do I import material design library to Android Studio?
• How to implement a material design circular progress bar in android
• How to achieve ripple animation using support library?
• No shadow by default on Toolbar?
• Error inflating class android.support.v7.widget.Toolbar?
• How to implement endless list with RecyclerView?
• android lollipop toolbar: how to hide/show the toolbar while scrolling?
• Toolbar navigation icon never set
• Coloring Buttons in Android with Material Design and AppCompat
• This Activity already has an action bar supplied by the window decor
• How to make Toolbar transparent?
• Android Material: Status bar color won’t change
• Material Design not styling alert dialogs
• Android Material Design Button Styles
• How to use <md-icon> in Angular Material?
• Android button background color
• How to provide shadow to Button
• How to change progress bar’s progress color in Android
• setSupportActionBar toolbar cannot be applied to (android.widget.Toolbar) error
• How to change Toolbar home icon color
• Creating a SearchView that looks like the material design guidelines
• How to set Toolbar text and back arrow color
• How do you set the title color for the new Toolbar?
• In android app Toolbar.setTitle method has no effect – application name is shown as title
• How do I use DrawerLayout to display over the ActionBar/Toolbar and under the status bar?
Я пытаюсь настроить панель инструментов во фрагменте.
В то время как документы Google Developer были обновлены и теперь включают код Kotlin (см. эту страницу). :
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_my)
// Note that the Toolbar defined in the layout has the id "my_toolbar"
setSupportActionBar(findViewById(R.id.my_toolbar))
это относится к настройке панели инструментов в действии, а не во фрагменте.
Я нашел этот сообщение SO, в котором говорится, что вы не можете просто вызвать setSupportActionBar во фрагменте. Цитировать:
Фрагменты не имеют такого метода setSupportActionBar(). ActionBar является свойством Activity, поэтому, чтобы установить панель инструментов в качестве панели действий, ваша активность должна расширяться от ActionBarActivity, а затем вы можете вызвать свой фрагмент:
…
Если вы используете AppCompatActivity:
((AppCompatActivity)getActivity()).setSupportActionBar(mToolbar);
Однако приведенный выше код находится в java.
Как мне назвать это в Котлине?
Существует реализация в Navigation codelab от Google, который, я думаю, сделает то, что мне нужно: позволит настроить заголовок, пункты меню и подключить навигацию вверх для различных контекстов фрагментов. Конкретно:
- Панель инструментов включена в основной XML-файл макета (navigation_activity.xml в этой лаборатории кода) за пределами фрагмента:
navigation_activity.xml
<LinearLayout>
<android.support.v7.widget.Toolbar/>
<fragment/>
<android.support.design.widget.BottomNavigationView/>
</LinearLayout>
- Затем настройте панель инструментов в основном файле активности следующим образом:
MainActivity.kt
class MainActivity : AppCompatActivity() {
private var drawerLayout: DrawerLayout? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.navigation_activity)
val toolbar = findViewById<Toolbar>(R.id.toolbar)
setSupportActionBar(toolbar)
//...
// Set up Action Bar
val navController = host.navController
setupActionBar(navController)
//...
}
private fun setupActionBar(navController: NavController) {
drawerLayout = findViewById(R.id.drawer_layout)
NavigationUI.setupActionBarWithNavController(this, navController, drawerLayout)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
val retValue = super.onCreateOptionsMenu(menu)
val navigationView = findViewById<NavigationView>(R.id.nav_view)
// The NavigationView already has these same navigation items, so we only add
// navigation items to the menu here if there isn't a NavigationView
if (navigationView == null) {
menuInflater.inflate(R.menu.menu_overflow, menu)
return true
}
return retValue
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
// Have the NavHelper look for an action or destination matching the menu
// item id and navigate there if found.
// Otherwise, bubble up to the parent.
return NavigationUI.onNavDestinationSelected(item,
Navigation.findNavController(this, R.id.my_nav_host_fragment))
|| super.onOptionsItemSelected(item)
}
override fun onSupportNavigateUp(): Boolean {
return NavigationUI.navigateUp(drawerLayout,
Navigation.findNavController(this, R.id.my_nav_host_fragment))
}
}
- Затем в файле фрагмента вы можете раздуть дополнительные пункты меню. В кодовой лаборатории main_menu.xml содержит элемент корзины покупок, который добавляется к настройке переполнения в основном действии выше.
MainFragment.kt
class MainFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
setHasOptionsMenu(true)
return inflater.inflate(R.layout.main_fragment, container, false)
}
override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
inflater?.inflate(R.menu.main_menu, menu)
}
}
person
Dennis 815
schedule
26.06.2018
Toolbar является одним из ключевых компонентов в Android для создания пользовательского интерфейса приложения. Он предоставляет удобные возможности для размещения элементов управления, таких как кнопки и текстовые поля. Однако, иногда при работе с библиотекой Setsupportactionbar могут возникать ошибки, связанные с неработающим toolbar. Они могут быть вызваны различными причинами, от неправильной настройки до конфликтующих библиотек.
Одним из часто встречающихся способов исправления ошибки является проверка наличия правильной конфигурации toolbar в файле макета. Убедитесь, что вы правильно определили toolbar в файле XML, указав его идентификатор и атрибуты. Также проверьте, что вы добавили поддержку action bar в манифесте приложения с помощью тега «uses-feature». Если все настройки верны, то проблема может быть связана с другими аспектами вашего кода.
Еще одним способом исправления ошибки может быть проверка совместимости используемых библиотек. Некоторые библиотеки могут конфликтовать с Setsupportactionbar, что может привести к неработающему toolbar. Обновление библиотеки Setsupportactionbar или проверка совместимости с другими библиотеками может помочь решить данную проблему.
Если ваши попытки решить проблему с toolbar в Setsupportactionbar не привели к успеху, рекомендуется обратиться к сообществу разработчиков Android или поискать аналогичные проблемы и их решения в Интернете. В большинстве случаев, эффективный способ исправления ошибки может быть найден с помощью общения с опытными разработчиками и анализа ответов на подобные проблемы.
Содержание
- Обзор возникшей проблемы
- Проверьте версию библиотеки support action bar
- Убедитесь, что вы правильно настроили action bar в вашем приложении
- Проверьте соответствие темы и стиля
Обзор возникшей проблемы
В ходе создания приложений с использованием Setsupportactionbar в Android иногда может возникнуть проблема с неработающим toolbar. Эта проблема может проявиться в том, что toolbar не отображается или не реагирует на действия пользователя.
Одной из наиболее частых причин возникновения этой проблемы является неправильная настройка toolbar в коде приложения. Возможно, необходимо добавить некоторые методы или вызовы функций, чтобы toolbar правильно работал.
Еще одной причиной может быть использование устаревшей или несовместимой версии библиотеки Setsupportactionbar. В этом случае необходимо обновить библиотеку до последней версии или проверить совместимость используемой версии с остальными компонентами приложения.
Также следует учесть возможные конфликты с другими компонентами или библиотеками приложения. Некоторые компоненты или настройки могут препятствовать правильной работе toolbar. Поэтому рекомендуется проверить все компоненты и настройки приложения на предмет конфликтов.
В некоторых случаях проблемы с неработающим toolbar могут быть связаны с ошибкой в самом коде приложения. Проверьте все методы и вызовы функций, связанные с toolbar, чтобы убедиться, что они правильно настроены и выполняются.
В целом, чтобы исправить проблему с неработающим toolbar, необходимо провести тщательный анализ кода приложения, настроек и компонентов, а также обновить все необходимые библиотеки. При необходимости можно обратиться к документации или к сообществу разработчиков для получения дополнительной помощи.
Проверьте версию библиотеки support action bar
Одной из причин неработоспособности toolbar в Setsupportactionbar может быть устаревшая версия библиотеки support action bar.
Версия библиотеки support action bar должна быть совместима с версией вашей Android SDK. Если используется устаревшая версия библиотеки, то возникают конфликты и неработоспособность toolbar в Setsupportactionbar.
Чтобы проверить версию библиотеки support action bar, необходимо открыть файл build.gradle модуля приложения.
В этом файле найдите зависимость com.android.support:appcompat-v7 и обратите внимание на версию. Если версия устаревшая, то необходимо обновить ее на последнюю доступную версию.
Чтобы обновить версию библиотеки, вам необходимо изменить версию зависимости в файле build.gradle. Укажите последнюю версию библиотеки, которая доступна на официальном сайте Android.
После изменения версии библиотеки не забудьте синхронизировать проект с Gradle, чтобы изменения вступили в силу.
Проверьте работу toolbar в Setsupportactionbar после обновления версии библиотеки support action bar. Если проблема сохраняется, можно искать другие возможные причины неработоспособности.
Убедитесь, что вы правильно настроили action bar в вашем приложении
Проблема с неработающим toolbar в методе Setsupportactionbar может возникнуть из-за неправильной настройки action bar в вашем приложении. Вот несколько проверенных способов исправить эту ошибку:
-
Убедитесь, что вы правильно добавили поддержку action bar в вашем проекте. Для этого необходимо добавить
<item name="windowActionBar">false</item>
в файле стиля вашего приложения. -
Проверьте, что вы правильно связали ваше активити с темой, содержащей action bar. Для этого необходимо установить
android:theme="@style/Theme.AppCompat.Light"
в вашем файле манифеста для соответствующего активити. -
Убедитесь, что вы добавили вызов
setSupportActionBar(toolbar)
в методе onCreate вашего активити, где toolbar — это объект Toolbar, определенный в вашем макете. -
Проверьте, что у вас правильно добавлены зависимости в файле Gradle вашего проекта. Для этого добавьте строку
implementation 'com.android.support:appcompat-v7:VERSION'
, где VERSION — это версия Support Library, которую вы используете. -
Используйте теги
<p>
для создания параграфов,<ol>
,<ul>
и<li>
для создания списков. Это поможет сделать вашу статью более читабельной.
Проверьте соответствие темы и стиля
Одна из причин, по которой toolbar может не работать в методе Setsupportactionbar, заключается в неправильной теме или стиле, используемом в вашем приложении.
Убедитесь, что у вас правильно установлена тема приложения. Вы можете проверить это, открыв файл AndroidManifest.xml и проверив значение атрибута theme в разделе application:
<application ... android:theme="@style/AppTheme"> ... </application>
Убедитесь, что тема AppTheme существует и правильно определена в файле ресурсов styles.xml. Пример определения темы может выглядеть так:
<resources> ... <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> ... </style> ... </resources>
Если ваша тема наследуется от Theme.AppCompat, убедитесь, что у вас подключена соответствующая зависимость в файле build.gradle:
dependencies { ... implementation 'com.android.support:appcompat-v7:X.X.X' ... }
Также убедитесь, что вы используете правильные стили для toolbar. Они должны быть определены в файле ресурсов styles.xml. Пример определения стиля для toolbar может выглядеть так:
<style name="ToolbarStyle" parent="Widget.AppCompat.Toolbar"> ... </style>
Убедитесь, что вы правильно применяете этот стиль к вашему toolbar элементу в макете вашей активити:
<android.support.v7.widget.Toolbar ... style="@style/ToolbarStyle"> ... </android.support.v7.widget.Toolbar>
Проверьте соответствие темы и стиля в вашем приложении, чтобы убедиться, что toolbar работает правильно в методе Setsupportactionbar.
Я искал ответ и перепробовал множество возможных решений, но, похоже, ничего не работает..
Я пытаюсь настроить панель действий материала после этого урока.
Вот мой код:
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>
И, наконец, моя активность.
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 THE PROBLEM !!!!
Ошибка:
setSupporActionBar (android.support.v7.widget.Toolbar) в ActionBarActivity не может быть применен к (android.widget.Toolbar)
Как я могу это исправить?