このプロジェクトをドリブルで確認してください。
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.