Dribbble에서 이 프로젝트를 확인하세요.
Behance에서 이 프로젝트를 확인하세요.
신의 축복이 우크라이나에 있기를!
2.3+ 버전의 CircularReveal 애니메이션에 대한 Ozodrukh의 애니메이션 유틸리티에 따라 다릅니다.
먼저 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)용 UI를 더 좋게 만드는 방법에 대한 튜토리얼을 게시할 예정입니다. 계속 지켜봐 주시기 바랍니다!
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.