Проверьте этот проект на Dribbble.
Проверьте этот проект на Behance.
Боже, храни Украину!
зависит от утилиты анимации Озодруха для анимации CircularReveal для версии 2.3+
Прежде всего вам необходимо загрузить подмодуль анимации с помощью команды git submodule update --init
Или вы можете добавить зависимость Gradle с помощью команды:
dependencies {
implementation ' com.github.yalantis:Side-Menu.Android:1.0.2 '
}
.
и командуем:
repositories {
maven {
url " https://jitpack.io "
}
}
dependencies {
implementation ' com.github.ozodrukh:CircularReveal:(latest-release)@aar '
}
Чтобы добавить зависимость gradle, вам нужно открыть build.gradle (в папке вашего приложения, а не в папке проекта), затем скопировать и добавить зависимости туда в блок зависимостей;
для модуля CircularReveal
После этого вам нужно будет создать специальный макет наложения, который будет отображаться позади текущего анимированного представления Circular Reveal
. И чтобы добавить все элементы в меню, вам необходимо добавить их все в LinearLayout
< android .support.v4.widget.DrawerLayout
xmlns : android = " http://schemas.android.com/apk/res/android "
android : id = " @+id/drawer_layout "
android : layout_width = " match_parent "
android : layout_height = " match_parent " >
< io .codetail.widget.RevealFrameLayout
android : id = " @+id/conteiner_frame "
xmlns : android = " http://schemas.android.com/apk/res/android "
android : layout_width = " match_parent "
android : layout_height = " match_parent " >
< LinearLayout
android : id = " @+id/content_overlay "
android : layout_width = " match_parent "
android : layout_height = " match_parent "
android : orientation = " vertical " />
< LinearLayout
android : id = " @+id/content_frame "
android : layout_width = " match_parent "
android : layout_height = " match_parent "
android : orientation = " vertical " />
< android .support.v7.widget.Toolbar
android : id = " @+id/toolbar "
android : layout_height = " wrap_content "
android : layout_width = " match_parent "
android : minHeight = " ?attr/actionBarSize "
android : background = " ?attr/colorPrimary " />
</ io .codetail.widget.RevealFrameLayout>
< ScrollView
android : id = " @+id/scrollView "
android : scrollbarThumbVertical = " @android:color/transparent "
android : layout_width = " 80dp "
android : layout_height = " match_parent "
android : layout_gravity = " start|bottom " >
< LinearLayout
android : id = " @+id/left_drawer "
android : orientation = " vertical "
android : layout_width = " 80dp "
android : layout_height = " wrap_content "
android : divider = " @android:color/transparent "
android : dividerHeight = " 0dp "
android : background = " @android:color/transparent " >
<!-- Layout of Drawer -->
</ LinearLayout >
</ ScrollView >
</ android .support.v4.widget.DrawerLayout>
ViewAnimator viewAnimator = new ViewAnimator <>( ActionBarActivity . this ,
new ArrayList < Resourceble >(),
( LinearLayout ) findViewById ( R . id . left_drawer ),
contentFragment , drawerLayout );
//to open menu you have to override ActionBarDrawerToggle method
@ Override
public void onDrawerSlide ( View drawerView , float slideOffset ) {
super . onDrawerSlide ( drawerView , slideOffset );
if ( slideOffset > 0.6 && viewAnimator . getLinearLayout (). getChildCount () == 0 )
viewAnimator . showMenuContent ();
}
public void onDrawerClosed ( View view ) {
super . onDrawerClosed ( view );
viewAnimator . getLinearLayout (). removeAllViews ();
viewAnimator . getLinearLayout (). invalidate ();
}
Все пункты меню должны реализовывать интерфейс Resourceble
для получения имени пункта меню и разрешения для рисования. И все фрагменты должны реализовывать ScreenShotable
для получения снимка экрана фрагмента.
Вы можете настроить значки, которые размещаете в меню, или добавить дополнительные элементы. Просто изменив список, который вы анализируете, для просмотра аниматора. Например:
private List < SlideMenuItem > list = new ArrayList <>(); \ the list of menu items
SlideMenuItem menuItem0 = new SlideMenuItem ( ContentFragment . CLOSE , R . drawable . icn_close );
list . add ( menuItem0 );
SlideMenuItem menuItem = new SlideMenuItem ( ContentFragment . BUILDING , R . drawable . icn_1 ); f irst parameter is the id of menu item , the second is the icon resouce
list . add ( menuItem );
SlideMenuItem menuItem2 = new SlideMenuItem ( ContentFragment . BOOK , R . drawable . icn_2 );
list . add ( menuItem2 );
viewAnimator = new ViewAnimator <>( this , list , contentFragment , drawerLayout , this );
Мы будем очень рады, если вы пришлете нам ссылки на свои проекты, в которых вы используете наш компонент. Просто отправьте электронное письмо по адресу [email protected]. Если у вас есть какие-либо вопросы или предложения относительно анимации, дайте нам знать.
PS Мы собираемся опубликовать еще больше крутых вещей, заключенных в код, и руководство о том, как сделать пользовательский интерфейс для Android (iOS) лучше, чем лучше. Следите за обновлениями!
Copyright 2019, Yalantis
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.