1

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

Каков правильный способ его выполнения?

Вот два скриншота приложений, созданных с помощью шаблонов Android Studio и нулевых модификаций кода.

enter image description here enter image description here

EDIT: просто для уточнения, я знаю, что это происходит из-за <item name="android:statusBarColor">@android:color/transparent</item>, которая на самом деле желаемого, потому что в моем приложении у меня есть нав ящик. Но мой вопрос заключается не столько в том, как это исправить, мне интересно, так ли это, как Google хочет, чтобы он работал?

Также я должен упомянуть, что я тестирую только леденец и зефир.

ответ

1

Нет, этого не должно быть. Строка состояния должна быть плоской без каких-либо теней. Просто взгляните на этой странице: https://www.google.com/design/spec/style/color.html#color-color-schemes

enter image description here

Это моя прозрачная строка состояния с выдвижным ящиком, работающим на Зефире. Тени нет.

enter image description here

Тема:

<item name="android:windowTranslucentStatus">true</item> 
<item name="windowActionBar">false</item> 
<item name="windowNoTitle">true</item> 

Я рисую цветные вставки с использованием модифицированного ScrimInsetsFrameLayout - https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/ScrimInsetsFrameLayout.java


Редактировать

Чтобы быть точным, то эта схема построена из следующего xml:

<carbon.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
          xmlns:app="http://schemas.android.com/apk/res-auto" 
          android:id="@+id/drawerLayout" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent"> 

    <carbon.widget.LinearLayout 
     android:id="@+id/content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     android:orientation="vertical" 
     app:carbon_insetColor="?attr/colorPrimary"/> 

    <carbon.widget.NavigationView 
     android:id="@+id/drawerMenu" 
     android:layout_width="240dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="?attr/carbon_colorBackground" 
     android:fitsSystemWindows="true" 
     android:orientation="vertical" 
     app:carbon_elevation="@dimen/carbon_elevationDrawer" 
     app:carbon_insetTop="0dp"/> 

</carbon.widget.DrawerLayout> 

Он может быть найден здесь наряду с полными исходными текстами: https://raw.githubusercontent.com/ZieIony/Carbon/master/samples/src/main/res/layout/activity_navigationview.xml

Компоновка с вкладышами толкает его содержание вниз и рисует цветной прямоугольник над вставкой пространство. Это для макета контента. Меню ящика имеет аналогичный макет в качестве его корня, но его вставки установлены в 0dp, поэтому меню может занимать все пространство экрана. Флаг fitsSystemWindows - это ключ.

+0

Значит, вы используете это как первое представление в своем основном макете деятельности? – casolorz

+0

Я просмотрел код приложения расписания io, и я не вижу, где они используют этот макет кадра, он также говорит, что он устарел. Я добавил его к новому проекту, сделанному прямо из шаблонов, и он подталкивает панель инструментов к строке состояния. – casolorz

+0

Как я уже сказал, это модифицированная версия. ScrimInsetsFrameLayout не идеальна, но для меня это было хорошим началом. Он использовался в предыдущей версии приложения Google. Я добавил дополнительные сведения к ответу. Я не хотел добавлять Carbon в ответ, потому что он слишком велик, чтобы быть полезным в качестве образца. – Zielony

Смежные вопросы