0

Я хочу портировать свое приложение в библиотеку поддержки Android v7 23.1.Как избежать панели заголовка при настройке темы во время работы?

Для этого я расширил свою тему с Theme.AppCompat.NoActionBar, как описано во множестве руководств.

<style name="MyTheme" parent=" Theme.AppCompat.NoActionBar "> 

Я использую динамическую настройку темы во время выполнения в операции onCreate().

public class MyActivity extends AppCompatActivity 
{ 
    @Override 
    public void onCreate(Bundle icicle) { 
     Log.d(TAG, "onCreate() started."); 
     super.onCreate(icicle); 
     setTheme(R.style.MyTheme); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar_default); 
     setSupportActionBar(toolbar); 
    } 
} 

Проблема в том, что всегда есть старый андроид TitleBar. Я имею в виду строку заголовка, а не панель действий. Проблема возникает, если я задаю тему во время выполнения. Если я установил его в манифесте, нет строки заголовка. Я предполагаю, что это некоторая ошибка в библиотеке поддержки, но вопрос в том, как ее исправить?

+0

Итак ... вы видите 2 бара? – tachyonflux

+0

Вы говорите о старой строке заголовка от Android 2.x? Вы пытались поддерживать только API 15 и выше, чтобы посмотреть, исчезнет ли он? – Dalmas

+0

@Dalmas Да, старая строка заголовка 2.x. Нет, я не. Я запускаю свой тест на физическом устройстве 2.3.5. Следует отметить, что если я установил тему в манифесте, заголовок исчезнет. Таким образом, проблема заключается в методе setTheme(). – f470071

ответ

1

Как было предложено Dalmas в его запросе requestWindowFeature(), необходимо вызвать. Но мне нужно вызвать метод onCreate() ПЕРЕД super.onCreate().

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 
} 
Смежные вопросы