2014-12-05 6 views
0

Я переключился с ABS на AppCompat и материала темы (только для апи 21)ActionBar не отображается на андроид <5,0

<!--manifest: --> 
<application 
     android:theme="@style/AppStyle" 

<-- values folder --> 
<style name="AppStyle" parent="@style/AudioRecTheme"> 
<style name="AudioRecTheme" parent="@style/Theme.AppCompat.Light"> 

<!-- values-v21 folder--> 
<style name="AudioRecTheme" parent="@android:style/Theme.Material.Light"> 

Моя активность:

public class AudioRecActivity extends FragmentActivity 

Панель действий показывает только в Android 5.0, но отсутствует в противном случае.

+0

Как вы применяете стиль? –

ответ

6

Во-первых, либо используйте appcompat-v7, либо используйте встроенные темы, не для того же мероприятия. Здесь вы пытаетесь использовать Theme.AppCompat.Light в некоторых случаях и Theme.Material.Light в других, что не только не нужно, но AFAIK не будет работать. Если вы собираетесь использовать Theme.AppCompat.Light, сделайте это для всех уровней API.

Во-вторых, если вы собираетесь использовать appcompat-v7 и Theme.AppCompat.Light, вам необходимо наследовать от ActionBarActivity.

+0

Я использую appcompat-v7, но хочу, чтобы тема наследовала родной стиль Material, когда v21. –

+0

Если я наследую ActionBarActivity, он сработает на 5.0, так как я использую тему Material для Lollipop –

+0

@AlexandruCircus: Затем создайте два отдельных действия. У вас не может быть одного действия, которое наследуется от «ActionBarActivity» и не наследуется от «ActionBarActivity». Вам нужно 'ActionBarActivity' для' appcompat-v7', и, как вы заметили, вы не можете использовать 'ActionBarActivity' для' Theme.Material. * '. – CommonsWare