Фактический результат: Строка состояния отображается над панелью действий Toolbar
и MenuItem
внутри панели действия отключена. Примечание: «Тест» - это панель действий title
.Прозрачная строка состояния перекрывается панель действия
Ожидаемый результат: Верхней граница панели действий Toolbar
должен появиться непосредственно под нижней границей строки состояния и любые MenuItem
s внутри панели действий должны быть видны полностью. XML макет
Activity в:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/background"
tools:ignore="ContentDescription"/>
<android.support.v7.widget.Toolbar
android:id="@+id/action_bar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
android:fitsSystemWindows="true"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
</FrameLayout>
Панель действий title
и MenuItem
добавляются во время выполнения.
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
setSupportActionBar((Toolbar) findViewById(R.id.action_bar));
ActionBar actionBar = getSupportActionBar();
assert actionBar != null;
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setTitle("Test");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_test, menu);
return true;
}
Прежде чем я добавил fitsSystemWindows="true"
к Toolbar
зрения, в строке состояния еще наслаивала панель действий, но «СКИП» MenuItem
был центрирован в панели действий, заставляя его появляться частично под строку состояния. Я ожидал, что флаг fitsSystemWindows=true
даст мне ожидаемый результат (упомянутый выше), но этого не произошло. Это как если бы fitsSystemWindows="true"
правильно позиционировал кнопку «ПРОПУСТИТЬ», но не отрегулировал положение самой панели действий. Кто-нибудь знает, что может быть проблемой здесь?
EDIT: Я понимаю, что я мог бы удалить fitsSystemWindows="true"
и добавить marginTop="...statusBarHeight"
к Toolbar
зрения, но я ищу для более чистого способа решить эту проблему.
вы можете поделиться полным файлом макета? и изображение предварительного просмотра макета? Я не могу увидеть тест и пропустить код кнопки в макете. – rahul
Это случается с другим макетом? –
@rahul, может быть, Ryan добавить название и пункт меню программно, а не в xml –