ActionBar styling after update on Android lollipop

I developed a custom ActionBar, choosing API19 yesterday, I updated the support libraries and the API21 project, which caused me problems. My action bar has a Menu Arrow button that I don’t need, and the style of changes in the action bar.

Before updating: enter image description here

After update: enter image description here

Below is the style.xml style

<resources> <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar"> </style> <!-- Base application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="android:buttonStyle">@style/ButtonAppTheme</item> <item name="actionBarItemBackground">@drawable/selectable_background_apptheme</item> <item name="popupMenuStyle">@style/PopupMenu.Apptheme</item> <item name="dropDownListViewStyle">@style/DropDownListView.Apptheme</item> <item name="actionBarTabStyle">@style/ActionBarTabStyle.Apptheme</item> <item name="actionDropDownStyle">@style/DropDownNav.Apptheme</item> <item name="actionBarStyle">@style/ActionBar.Solid.Apptheme</item> <item name="actionModeBackground">@drawable/cab_background_top_apptheme</item> <item name="actionModeSplitBackground">@drawable/cab_background_bottom_apptheme</item> <item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Apptheme</item> <!-- Light.DarkActionBar specific --> <item name="actionBarWidgetTheme">@style/Theme.Apptheme.Widget</item> </style> <!-- Base application theme for Full screen Activities --> <style name="AppThemeFullScreen" parent="@android:style/Theme.Light.NoTitleBar.Fullscreen"> <item name="android:buttonStyle">@style/ButtonAppTheme</item> </style> <!-- Button Style --> <style name="ButtonAppTheme" parent="android:Widget.Button"> <item name="android:background">@drawable/btn_background</item> <item name="android:minHeight">48dip</item> <item name="android:minWidth">64dip</item> <item name="android:textColor">@color/btn_text_color_default</item> </style> <style name="ActionBar.Solid.Apptheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="background">@drawable/ab_solid_apptheme</item> <item name="backgroundStacked">@drawable/ab_stacked_solid_apptheme</item> <item name="backgroundSplit">@drawable/ab_bottom_solid_apptheme</item> <item name="progressBarStyle">@style/ProgressBar.Apptheme</item> </style> <style name="ActionBar.Transparent.Apptheme" parent="@style/Widget.AppCompat.ActionBar"> <item name="background">@drawable/ab_transparent_apptheme</item> <item name="progressBarStyle">@style/ProgressBar.Apptheme</item> </style> <style name="PopupMenu.Apptheme" parent="@style/Widget.AppCompat.PopupMenu"> <item name="android:popupBackground">@drawable/menu_dropdown_panel_apptheme</item> </style> <style name="DropDownListView.Apptheme" parent="@style/Widget.AppCompat.ListView.DropDown"> <item name="android:listSelector">@drawable/selectable_background_apptheme</item> </style> <style name="ActionBarTabStyle.Apptheme" parent="@style/Widget.AppCompat.ActionBar.TabView"> <item name="android:background">@drawable/tab_indicator_ab_apptheme</item> </style> <style name="DropDownNav.Apptheme" parent="@style/Widget.AppCompat.Spinner.DropDown.ActionBar"> <item name="android:background">@drawable/spinner_background_ab_apptheme</item> <item name="android:popupBackground">@drawable/menu_dropdown_panel_apptheme</item> <item name="android:dropDownSelector">@drawable/selectable_background_apptheme</item> </style> <style name="ProgressBar.Apptheme" parent="@style/Widget.AppCompat.ProgressBar.Horizontal"> <item name="android:progressDrawable">@drawable/progress_horizontal_apptheme</item> </style> <style name="ActionButton.CloseMode.Apptheme" parent="@style/Widget.AppCompat.ActionButton.CloseMode"> <item name="android:background">@drawable/btn_cab_done_apptheme</item> </style> <!-- this style is only referenced in a Light.DarkActionBar based theme --> <style name="Theme.Apptheme.Widget" parent="@style/Theme.AppCompat"> <item name="popupMenuStyle">@style/PopupMenu.Apptheme</item> <item name="dropDownListViewStyle">@style/DropDownListView.Apptheme</item> </style> </resources> 

onCreate from MainActivity

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mNavigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); // mTitle = getTitle(); // Set up the drawer. mNavigationDrawerFragment.setUp( R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout)); actionBar = getSupportActionBar(); // Toolbar toolbar =(Toolbar) findViewById(R.id.toolbar); // setSupportActionBar(toolbar); LayoutInflater mInflater = LayoutInflater.from(this); LayoutParams layout = new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); View mCustomView = mInflater.inflate(R.layout.actionbar, null); actionBar.setCustomView(mCustomView,layout); actionBar.setDisplayShowCustomEnabled(true); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDefaultDisplayHomeAsUpEnabled(false); actionBar.setDisplayUseLogoEnabled(false); } 

Any solution to restore the action bar, for example, using the latest SDK?

Update: I can remove the arrow from the action bar by deleting the ActionBarDrawerToggle everywhere in my Drawerfragment.

enter image description here

Now I am faced only with the problem of styling the action bar. Left tab and Actionabr background color

+6
source share
2 answers

If you need only color, you should define it as primaryColor in your theme. It looks like you have a lot of things to just cast a tint on the ActionBar.

  <style name="Theme.MyTheme" parent="Theme.AppCompat"> <item name="colorPrimary">@color/primary</item> </style> <color name="primary">#ff5722</color> 

The arrow you are referencing is getSupportActionBar().setDisplayHomeAsUpEnabled(true|false); , and you no longer need (should) use your own mailbox icon, as it is included in appcompat v7. ( mDrawerToggle.setDrawerIndicatorEnabled(true); )

+5
source

This is already allowed here Android Lollipop, the custom view of the AppCompat ActionBar application does not occupy the entire width of the screen .

I tested the solution and it works, although you will have to draw the toolbar again

-2
source

Source: https://habr.com/ru/post/977014/


All Articles